ExcelVBAのイベントとは?どんなイベントがあるか確認する方法

Excel
この記事は約4分で読めます。

VBAでは、「何かをきっかけに実行される」ことを「イベント」といいます。

きっかけは、

・ボタンをクリックしたとき
・テキストを入力したとき
・リストから項目を選択したとき

・ブックを開いたとき

などExcelを操作する際の様々な動作でイベントを発生させることができます。

イベントを発生させることで、フォームを表示させたり、メッセージボックスを表示させたり、データの集計をさせたりなど、その後の動作を実行することができます。

 

どんなイベントがあるか確認してみよう

イベントの種類をエディターから確認できます。

ExcelファイルのSheet1のVisual Basic Editorを開きます。

Visual Basic Editorについて詳しくは以下にあります↓

VBAとは?マクロとの違いやVBA初期導入まで
VBA(Visual Basic for Applications)は、ExcelやWord、Accessといった、Microsoft Officeで使用するプログラミング言語です。 VBAはExcel内のデータ集計や、分析、SUMやAVE...

 

上部左側のコンボボックスのリストでは、Sheet1のオブジェクトが選択できます。

シートやボタンなどの[モノ]がこのコンボボックスに表示されます。

右側のコンボボックスのリストでは、左で選択したオブジェクトに対するイベントが選択できます。

左のコンボボックスでWorksheetを選択して、どんなイベントがあるか確認してみます。

Worksheet_SelectionChangeというイベントが勝手に作成されますが、使用しない場合は削除してください。
ちなみに、Worksheet_SelectionChangeは、シート内のセルの選択範囲を変更したときに発生するイベントです。

 

右のコンボボックスのリストを見てみます。Worksheet内で使用できるイベントのリストが確認できます。

 

イベントを使って実装してみる

先ほどのイベントリストの中から、Changeを選択します。

Changeは、セルが変更されたときに発生するイベントです。このイベントの処理エリアに、実行させたい次の動作を記述していきます。

どこかのセルに「test」が入力されたときに、メッセージボックスで通知する処理を書いていきます。

If Target.Value = “test” Then
MsgBox “testが入力されました。”
End If

Targetは、Worksheet_Changeイベント発生時に渡される情報です。

Worksheet_Change(ByVal Target As Range)
この「渡される情報」のことを「引数」といいます。
引数は、イベント発生のときだけでなく、自分で作成した関数にも設定することができます。

 

テストします。適当なセルに「test」と入力してEnterを押します。

正常に動作しました。

 

その他オブジェクトのイベントの確認

Worksheetのほかにもボタンやコンボボックスなど、シートやフォームに挿入できるコントロールにはイベントを発生させることができます。

ボタンをシートに設置して、選択できるイベントを確認してみましょう。

エディターに戻って、上部左側のオブジェクトのリストを見てみると、CommandButton1が追加されています。

CommandButton1を選択し、右側のイベントのリストを見てみます。

Clickイベントだけでなく、

・ボタンをクリックしたとき
・ボタンをマウスでクリックしたとき
・ボタンをマウスでクリックし離したとき
・ボタンをエンターキーで押したとき
・ボタンをエンターキーで押して離したとき

など、細かい動作ごとにイベントが選択できます。

 

まとめ

VBAのイベントについてと、イベントの確認方法をお伝えしました。

「何かをきっかけに実行される」ことを「イベント」といいます。慣れてきたら業務効率化にVBAを使ってみてください。以下が参考になるかと思います。

作って学ぶVBA①Excel集計表作成の自動化

作って学ぶVBA①Excel集計表作成の自動化
備品や機器等をExcelの表にまとめて台帳管理している人は多いのではないでしょうか。 その台帳から、「何月にどれだけ購入したか」「今はどこに保管しているか」などの集計表や棚卸表をまとめたい場合もあるかと思います。 今回は機器管理台帳から、 ...

作って学ぶVBA②Excel台帳から書類作成自動化

作って学ぶVBA②Excel台帳から書類作成自動化
Excelで備品購入などの記録を台帳管理している場合、見積書や注文書等の書類を作成するために、台帳の記録を見ながら作成することがあると思います。 複数の書類を作らなければならないとき、作成のたびに台帳を開いて、外注先や金額などの必要なデータ...

作って学ぶVBA③Excelのデータチェック自動化

作って学ぶVBA③Excelのデータチェック自動化
システムから出力したExcelやCSV形式のデータ一覧を、「データに誤入力がないか?」「不要なデータが出力されてないか」など、チェックする場合があると思います。   データが100件くらいであれば、目視で確認してもいいかもしれないですが、デ...