【VBA】コマンドボタン(マクロ実行ボタン)を作成する方法をご紹介

 

VBAで設定したコードの「実行ボタン」を作成したい!どうやればいいの?

 

こんな疑問にお答えします。

 

コマンドボタンの作成にはいろんな方法があるのですが、この記事では以下の3つの方法をご紹介します。

  • 【超簡単】ツールバーからボタンを作成
  • ユーザーフォームでボタンを作成
  • セルに実行ボタンの機能を設定

 

おすすめは1つの目の「クイックアクセスツールバーからボタンを作成」する方法です。

VBA初心者の方でも30分もあれば作成可能という超簡単な方法なので是非チェックしてみてください。

 

広告

コマンドボタンの作成方法① ツールバーからボタンを挿入する

 

私的にコマンドボタンを作成する最も簡単な方法だと思っています。

VBA初心者の方でもすぐに実践することができる方法なので是非使い方をマスターしてください。さっそくコマンドボタン作成方法を図を使って解説していきます。

 

手順① 「開発」→「挿入」→ボタン(フォームコントロール)を選択

 

手順② コマンドボタンを設置したい適当な場所にカーソルを合わせてドラック

 

手順③ 「OK」を選択

 

Left Caption

ガッツポーズの人

たったこれだけで作成完了。

 

VBAでコードを作成していれば「マクロの登録」というダイアログの中にコード名が表示されます。

 

サンプルとして、Module1に以下のようなコードを作成してみました。

 

 

すると、「マクロの登録」のダイアログにテストというコード名が表示されるようになります。

 

「テスト」はModule1に作成したコードのことです。プロシージャでVBAを増やしていくと「マクロの登録」のダイアログの一覧にコード名が表示されていきます。

 

コマンドボタンに登録したいコード名を選択すれば登録完了です。

 

コマンドボタンの作成方法①-1 クイックアクセスツールバーからボタンを挿入する

上記で紹介した「ツールバーからボタンを作成する方法」とほとんど同じなのですが、

クイックアクセスツールバーに「ボタン(フォームコントロール)」を登録しておくことでパッとコマンドボタンを作成できるようになります。

クイックアクセスツールバーへの登録方法をご紹介します。

 

手順① 「▼」をクリック→「その他のコマンド」→「すべてのコマンド」→「ボタン(フォームコントロール)」→「追加」→「OK」

 

手順② クイックアクセスツールバーに新たに表示された「ボタン(フォームコントロール)」をクリック→コマンドボタンを設置したい適当な場所にカーソルを合わせてドラック

 

 

 

「ボタン(フォームコントロール)」をトップ画面に登録することで、ボタンコマンドを探す手間を省くことができます。

 

コマンドボタンは毎日設定するようなものではないので、どこにあるのかよくド忘れしてしていました。。

 

Right Caption

悩んでる人

あれ?コマンドボタンどこにあったっけ?挿入タブかな??

 

クイックアクセスツールバーに登録してからこんな無駄な時間を使うことはなくなりました。

これから業務効率化マクロをいっぱい開発していくんだ!という方は是非クイックアクセスツールバーへの登録をおすすめします。

 

コマンドボタンの作成方法② ユーザーフォームでボタンを作成する方法

ユーザーフォームによるコマンドボタンの作成は、最も利用されているマクロの実行方法です。

最初は難しいと感じるかもしれませんが、やり方を覚えてしまえば感覚的に設定することができるようになるはずです。

是非ユーザーフォームによるコマンドボタンの作成に挑戦してみてください。

 

手順① 「Alt」+「F11」でVBAを開く → 左側のプロジェクトの部分で 右クリック → 「挿入」 → 「ユーザーフォーム」 を選択

 

 

手順② ツールボックスを使って実際に表示させるフォームを設定する。

 

もし上記のツールボックスが表示されていない方は、ツールバーにあるツールボックスを選択すると表示させることができます。

 

手順③ ツールボックスの「コマンドボタン」を選択し、画面右側(UserForm1)に登録する。

 

 

手順④ コマンドボタンを選択中に下記のアイコンをクリックする。

 

手順⑤ 「Private sub CommandButton1_Click()」の下に実行させたいコードを記入する

 

今回はサンプルコードとして、ユーザーフォームによる設定」というテキストをA1セルに入力するコードを記載

 

手順⑥ ユーザーフォームを表示させたいシートを選択し、ユーザーフォームを表示させるコードを記載する。UserForm1.Show vbModeless」を

 

 

ユーザーフォームを表示させるコード

Private Sub WorkSheet_Activate ()
UserForm1.Show vbModeless
End Sub

このコードはユーザーフォームを設定するときに必ず使用することになるので絶対に覚えておきましょう。

 

内容としてはSheet「ユーザーフォーム」を選択したとき、UserForm1(先ほど作成したユーザーフォーム)を表示させる。というプログラムです。

これでユーザーフォームを使ったコマンドボタンの設定は完了です。

 

コマンドボタンの動作を試してみた結果がこちら

 

 

Left Caption

正解の人

無事ユーザーフォームでコマンドボタンの設定を行うことができました。

 

コマンドボタンの作成方法③ セルにコマンドボタンの機能を設定する方法

「セルにコマンドボタンの機能を設定する」とは、セルのクリックでマクロを実行させることです。

  • セルをクリックすると色が変わる
  • セルをクリックすると集計マクロが実行される
  • セルをクリックすると転記マクロが実行される

 

ボタンを押下する手間を省くことができるので、エクセル操作の一環でマクロを使用するこが可能になります。

セルのクリックでマクロを実行する方法を解説していきます。

 

手順① 「Alt」+「F11」でVBAを開く → Sheetを選択

 

手順② 「Worksheet」、「SelectionChange」を選択

 

 

手順③ 動作させたいコードを記入

 

上記で記入されているサンプルマクロがこちら

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If (Target.Column = 3) And (Target.Row = 3) Then
Target.Cells.Interior.Color = RGB(255, 255, 0)
Else
End If
If Err <> 0 Then
Err.Clear
End If
End Sub

 

試してみたいという方はサンプルコードをコピペして使ってみてください。

 

たったこれだけで、セルのクリックでマクロを実行させる設定が完了です。

 

セルの指定方法に引数Targetを使用しなければならないので、

ちょっと難しく感じるかもしれませんが慣れてしまえばいろんなコードを設定できるようになります。

 

下記の記事では、引数Targetの使い方を詳しくご紹介しています。

 

 

コピペして使えるサンプルコードも多数掲載されているので是非参考にしてみてください。

 

コマンドボタンの設定は業務内容に合わせて変更しなければならない

 

 

作成したマクロを実行させるためのコマンドボタンは業務内容に合ったものを設定しなければなりません。

 

「ツールバーから作成するコマンドボタンが一番簡単で手っ取り早い!これ1本じゃダメなの?」

 

基本的にツールバーから作成するコマンドボタンでいいと私も思いますが、この方法が使えない場面が出てくると思います。

私が勤めていた会社で実際にあった事例を参考に、なぜ業務内容に合わせてコマンドボタンの設定方法を変えなければならないのかをご紹介していきます。

 

事例① コマンドボタンが邪魔になったのに編集できない

会社では自分一人が操作するエクセル以外に職場にいる全員が編集するエクセルがありますよね。

この、職場にいる全員が編集するエクセルにコマンドボタンを設定したときに「ボタンを配置したセルを編集したいのに動かせない」というクレームが入ってしまいました。

 

Left Caption

上を目指す人

ボタンを動かすには左クリックではなく、右クリックをしながらボタンを移動させることができます。

ユーザーフォームでコマンドボタンを設定していればこのような事態にはならなかったと反省しています。

 

事例② ユーザーフォームを×で消しちゃった!どうすればいいの?

ユーザーフォームを表示させる仕組みをしっかり設定していなければ、ユーザーフォーム自体を閉じられてしまいマクロが実行できなくなるという事象が発生してしまいます。

このときは、Sheetを切り替えるとユーザーフォームが表示される仕組みを採用していたのでシートを切り替えれば再度フォームが表示されるのでしたが閉じてしまった方はわからなかったようです。

ユーザーフォームは邪魔くさい、扱いづらいと感じる方が少ないので、この場合ユーザーフォームではないコマンドボタンの設定方法が必要になります。

 

事例③ 行や列の挿入でマクロの実行ができなくなった

「実行」というテキストを記入したセルに実行コードを設定していたのですが、列や行の挿入に対応させていませんでした。

昔から様式が決められているエクセルファイルだったので、私は行や列の変更はないと決めつけて特定セルに実行コードを設定してしまいました。

この場合、ユーザーフォームによるコマンドボタンの設定を行っていれば問題は発生しなかったでしょう。

 

実際に私の職場で発生した事例を3つ紹介させていただきました。

マクロを実行する仕組み作りは最新の注意を払う必要があります。せっかく苦労して作成したマクロも実行されなければ全く意味がありません。

 

この記事で紹介したコマンドボタンを設定する3つの方法をマスターしておけば、どんな業務内容であっても最適な実行ボタンを設定することができるようになります。

 

VBA初心者が効率化マクロを導入する方法

 

VBAなんて扱ったことないけどエクセル作業を自動化するマクロを導入したい!

このような問題を抱えながら日々のエクセル業務をこなしている方がおおくいらっしゃるのではないでしょうか。

 

こんな問題を解決する方法がこちら

  • マクロの開発を外注に依頼する
  • マクロが設定されたエクセルファイルをダウンロードする
  • 参考書やネットでVBAスキルを身に付ける

 

VBAの勉強を始める前は上記の方法で効率化マクロを導入していました。

 

 

 

完成されたマクロを使ってエクセル業務を処理する

作業効率が2倍以上アップ!!

便利すぎて自分でもマクロを設定したいと考え始める

参考書やネットの情報でVBAスキルを身に付ける

マクロ開発を代行できる程のスキルを習得

 

 

 

VBAは

他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい

という特徴があります。

 

毎日のルーティーン作業にうんざりしている、だれでもできる単純作業に時間を費やしている、という方はあなたに合った方法でVBAを導入しちゃいましょう。

 

マクロの開発を外注に依頼する

マクロの開発を外注に依頼する導入方法は

VBAを全く扱えない方でもエクセル作業を自動化できる最も簡単な方法

です。

 

「こんなエクセル作業を自動化したい」「作った資料を自動的にPDFで保存したい」「決まった様式に写真を自動で貼り付けたい」

こんな感じで実現したい内容を依頼するだけで業務内容に合ったマクロを開発してくれます。

 

Left Caption

ガッツポーズの人

完成まで本業に集中できるので効率的

 

 

デメリットは、費用がかかることだけ。

開発内容、依頼先によってかかる費用は大きく異なります。

私が会社員の頃利用していた業者さんは1マクロあたり2万円~3万円の費用がかかりました。

 

Left Caption

疑問がある人

ちょっと高くない。。。

 

ちなみに、マメBlogでもエクセルマクロ開発代行サービスを承っています。

開発内容の確認、VBAコードの設定、動作確認後の調整、など全ての工程を私(マメ父ちゃん)が行っているので、

費用が安い!スピード納期!!

でやらせてもらっています。

 

ほとんど独学で身に付けたVBAスキルなので、内容によっては開発できないこともあるのでご了承ください。

 

ご相談、見積もり依頼は完全無料ですので気になる方は下記のリンクよりお問合せ下さい。

 

 

マクロが設定されたエクセルファイルをダウンロードする

VBA初心者でも『マクロが設定されたエクセルファイルをダウンロード』ですぐにエクセル作業を自動化することができます。

 

たとえば、

A4用紙に写真を貼り付けてコメントを入力する作業を自動化したい!という場合、

『写真を貼り付けるマクロ』が設定されたエクセルファイルをダウンロードすれば問題解決です。

 

実際に、『写真を貼り付けるマクロ』をダウンロードして使っている様子がこちら

写真貼付けマクロの使い方を示したイラスト

 

 

Left Caption

ガッツポーズの人

写真貼付け作業の効率がめちゃくちゃアップ

 

 

『マクロが設定されたエクセルファイルをダウンロード』する導入方法は、

VBA初心者でもマクロを導入できる、費用が安い、

というメリットがあります。

 

しかし

VBAに関する情報が多く公開されているとはいえ、ネット上で想定するマクロは見つけることが難しい

というデメリットもあります。

 

Left Caption

ガッツポーズの人

お目当てのマクロが見つかればラッキー

 

個人ブログやファイルを販売できるサイト「note」や「Tips」ではいろんなマクロの情報が掲載されているので是非参考にしてみてください。

 

今までマメBlogで受注した効率化マクロを下記のnoteで掲載していますので併せてチェックしてみてください。

 

 

 

参考書やネットでVBAスキルを身に付ける

先程も紹介しましたが、

VBAは他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい

プログラミングです。

 

言い換えると、

情報量が豊富なので自分で勉強できちゃう

ということです。

 

私のVBAスキルはほとんど独学で身に付けたもので、

考えた処理のほとんどをVBAで表現できるレベルにまで到達した!

と思っています。

 

私の作ったマクロをプロのプログラマーが見れば、

お前の書くコードはインチキだ!「変数の宣言」とか「引数」を正しく使えよ!!

と感じるはずです。

 

でも、

私からすればどうでもいい!!!想定した内容を正しく処理できればよくないですか!?

 

独学であっても『写真を貼り付けるマクロ』『全てのシートをPDF出力するマクロ』『連番を振るマクロ』など、

業務内容に合ったマクロを開発できるようになれます。

 

独学でVBAスキルを身に付けるコツは、

エラーが発生してもいいからひたすらコードを書く、なんでもいいからエクセル作業をマクロ化してみる

です。

 

とは言っても、全くの知識0の方は何をすればいいかわからないですよね。

 

VBA知識0の初心者の方は、参考書『たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】』を読んでみてください。

 

VBAの知識0の方でもすいすい読み進められる内容になっています。

やさしい内容にも関わらず「え!!VBAを使えばこんなことできるの!?」と感動すると思います。

 

実際に私はこの参考書を読んでからVBAの勉強を始めました。

 

Left Caption

ひらめく人

VBA学習スタートのきっかけをくれた参考書


 

 

VBAの魅力を発見した後は、

ひたすら自動化したい処理を実現するコードを書くだけ

です。

 

【VBA 写真を貼る】、【VBA PDF出力】、のようにネット検索すれば知りたいコードをすぐにゲットできます。

 

実現したい処理に向かって、「調べる→書いてみる→エラーを改善する→調べる」を繰り返していると

自然といろんなマクロが作れるようになっているはずです。

 

VBAに興味が湧いてきたという方は今からVBA学習をスタートさせちゃいましょう。