Developer

【ExcelVBA】イベントプロシージャの挿入方法①
2021.10.03
Lv1

【ExcelVBA】イベントプロシージャの挿入方法①

イベントプロシージャの挿入方法①

前回に引き続きイベントを使用したマクロの実行について紹介していきます。

前回はイベントとは何かということを紹介しました。まとめを引用しておきましょう。

イベントとは、Excel上で特定の操作を行ったときに、その操作が行われたことをExccelからVBAに通知する仕組みのこと。
そのイベントに対応する(そのイベントの発生をトリガーとした)マクロを作成することで、特定の操作によってマクロを自動実行することができる。

今回は具体的な使い方をみていきます。

イベントプロシージャを挿入する例

イベントを利用して実行するマクロ(プロシージャ)は、あらかじめ決められたモジュールのあらかじめ決められたプロシージャに記述する必要があります。
VBAには「イベントプロシージャ」という仕組みがあり、特定の戻り値、プロシージャ名、引数でプロシージャを定義するとイベントが発生したときにそのプロシージャが実行されるようになっています。
戻り値、プロシージャ名、引数をあらかじめ決められているものから変更することはできません。
ここでは、セルの値が変更したときに発生する「Changeイベント」を例にして、イベントを利用したマクロの作成方法を紹介していきます。

1.任意のExcelブックを開きます。

2.VBEを開き、プロジェクトエクスプローラーで「Sheet1」をダブルクリックします。

3.コードウィンドウの左上で「Worksheet」を選択します。

4.コードウィンドウの右上で「Change」を選択します。

選択すると自動的に「Worksheet_Change」プロシージャが挿入されます。
「Worksheet_SelectionChange」というプロシージャも挿入されていますが、今回は使用しないため無視、もしくは削除して頂いてかまいません。

Private Sub Worksheet_Change(ByVal Target As Range)
    '' ここにプログラムを書いていく
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

5.次のコードを追記する

Private Sub Worksheet_Change(ByVal Target As Range)
    MsgBox "こんにちは!"
End Sub

6.Excelに戻って任意のセル(ここではA1)に値を入力する

このようにセルに値を入力したときに、メッセージが表示されれば成功です。

まとめ

イベントに対応する(そのイベントの発生をトリガーとした)マクロを作成することで、特定の操作によってマクロを自動実行することができる。
このマクロのことをイベントプロシージャと呼び、戻り値・プロシージャ名・引数はあらかじめ決められているものにしなくてはならない。

確認問題

以下の「○○○」に当てはまる文言を解答してください。

特定のイベントが発生したときに、それをトリガーとしてマクロを実行する仕組みのことを○○○と呼び、あらかじめ決められている戻り値・プロシージャ名・○○○でプロシージャを定義する。これらを変更することはできない。

答え

特定のイベントが発生したときに、それをトリガーとしてマクロを実行する仕組みのことをイベントプロシージャと呼び、あらかじめ決められている戻り値・プロシージャ名・引数でプロシージャを定義する。これらを変更することはできない。

次回も引き続き、「イベントについて」です。