ボタンとVBAマクロのイベント追加

エクセルのシートには、ボタンやドロップダウン形式メニューなどのGUI部品を追加することができます。さらに、追加したGUI部品に対しては、クリックなどユーザーの操作に応じて処理を行うVBAマクロをイベントハンドラ(イベント時に実行するマクロ)として割り当てることも可能です。

こうしたイベント機能を使うと、シートに独自の処理を呼び出す仕組みを簡単に追加することができますね。今回は、エクセルのシートにテストボタンを配置し、ボタンをクリックするとメッセージボックスを表示するイベントハンドラを設定してみましょう。
ExcelシートへのGUI部品の追加とVBAマクロのイベントハンドラ設定の基本的な流れを、確認してみることにします。

エクセルのシートにボタンを追加するには、まず「表示」メニューからコントロールツールボックスのツールバーを表示します。すると、ツールバー内にボタンのアイコンがあるので、クリック。後は、シート上の適当な位置でドラッグすると、ボタンが追加されるはずです。ボタンを追加したら、ダブルクリックすると、VBA編集画面になり直接ボタンクリックのイベント時に実行するVBAマクロを編集できます。

これまで同様、以下のようなコードでメッセージボックスを出すテストをしてみましょう。

Private Sub CommandButton1_Click()
    MsgBox "test"
End Sub

実際にテストする際は、表示されているツールチップのトルグボタンで「デザインモードを終了」してから、ボタンをクリックしてください(デザインモードでは、イベントが発生しません)。メッセージボックスが出てきましたね。

以上で、シート上にGUI部品を追加し、GUI部品のイベントに応じてVBAマクロを呼び出す流れをつかめたと思います。エクセルのGUI部品は、テキストボックスや選択メニューなど各種用意されているので、うまく使えば操作に応じてデータを見やすく整理したり、各種統計処理をわかりやすいインターフェースで呼び出せるシートを作ることができるでしょう。


エクセルVBA練習帳