はじめに
シート上にボタンを配置しメッセージボックスを表示させるプログラムを最短で書いてみます。
プログラミングというよりは、VBEの使ってプログラミングする方法を学ぶ感じです。
ボタンを配置する
最初にシート上にボタンを配置します。
メニューの「開発」タブから、「挿入」「ボタン(コントロール フォーム)」を選択します。
![](https://help-vba.com/wp-content/uploads/2022/08/sc_NoName_2022-7-15_8-19-27_No-00.png)
次に、シート上の好きな場所をドラッグしてボタンを配置します。
![](https://help-vba.com/wp-content/uploads/2022/08/sc_NoName_2022-7-15_8-20-11_No-00.png)
ドラッグを終えると以下のようなダイアログが出るので「新規作成」を押します。
(これで、ボタンと命令実行が紐づけされます。)
![](https://help-vba.com/wp-content/uploads/2022/08/sc_NoName_2022-7-15_8-20-24_No-00.png)
自動的にVBEが開き「ボタン1_Click」プロシージャが追加されました。
(同時に標準モジュールも追加されています。)
![](https://help-vba.com/wp-content/uploads/2022/08/sc_NoName_2022-7-15_8-21-27_No-00.png)
プロシージャ名(マクロ名)は先程のダイアログで指定された名前になっています。
Sub と End Sub の間に命令を書いていきましょう。
MsgBox “こんにちは!”
と書いてみましょう。こんにちは!以外は半角です。
![](https://help-vba.com/wp-content/uploads/2022/08/d9582364b06fed1c624d19bab7ebe8ee.png)
では、Excelの画面に戻って実行してみましょう。(ショートカットキーは、Alt+F11です)
「ボタン1」を押すと、メッセージボックスが表示されます。
![](https://help-vba.com/wp-content/uploads/2022/08/sc_NoName_2022-7-15_8-54-5_No-00.png)
これで完成です! もう少し深堀してみましょう。
プログラムが実行される仕組み
今回のプログラムでは、ボタンとプログラムを結び付けるダイアログが出てきました。
このダイアログをもう一度表示させるには、「ボタン1」を右クリックして「マクロの登録」を選択します。
![](https://help-vba.com/wp-content/uploads/2022/08/sc_NoName_2022-7-15_9-1-26_No-00.png)
ここで先程のマクロ名「ボタン1_Click」が選択されているのがわかります。
![](https://help-vba.com/wp-content/uploads/2022/08/sc_NoName_2022-7-15_9-7-57_No-00.png)
プログラムをボタンで呼び出して実行
今度はプログラムを書いてから、それをボタンで呼び出してみます。
VBEに戻って、先程のプログラムの下に以下のコードを加えてください。
Sub ボタン1_Click()
MsgBox "こんにちは!"
End Sub
'/// 追加 ///
Sub macro()
MsgBox "Hello!"
End Sub
Excel画面に戻って、先程と同じように”ボタン1”を右クリックします。
「マクロの登録」をクリック。
![](https://help-vba.com/wp-content/uploads/2022/08/sc_NoName_2022-7-15_9-14-14_No-00.png)
新しく「macro」という命令が選択できるようになったので、こちらを選択します。
「ボタン1」を押してみましょう。
ボタンの選択状態を解除
ボタンが選択状態だと押せませんので、その時はボタン以外の場所をクリックして選択状態を解除しましょう。
![](https://help-vba.com/wp-content/uploads/2022/08/sc_NoName_2022-7-15_9-26-40_No-00.png)
あらためて「ボタン1」を押すと、今度は”Hello!”と表示されたと思います。
![](https://help-vba.com/wp-content/uploads/2022/08/sc_NoName_2022-7-15_9-29-53_No-00.png)
このようにボタンの右クリックから「マクロの登録」で実行する命令を選ぶことが出来ます。
まとめ
Excelでは、最初にシート上にボタンを設置すると、その後は自動でプロシージャを作ってくれます。(マクロ名「ボタン1_Click」などとなります。)
この機能を使えば、標準モジュールを追加したり、マクロ名を書いたりする手間が省けて、すぐにプログラムコードを書くことが出来るので便利です。
その他には、「マクロの記録」を使っても勝手にプロシージャを作成してくれるので、出来上がったマクロのプログラムコードを書き変えていくのも便利です。ただ、この場合はボタンとの関連付けは自分で行わなければなりません。