VBAのイベント

<< オブジェクトのメソッド :前の記事

ここまで「オブジェクト」「プロパティ」「メソッド」について解説してきました。それぞれの関係やオブジェクトの値の取得や操作については理解されたかと思います。今回は少し特殊なオブジェクトの操作ができる「イベント」について解説していきます。

目次

イベントとは

イベントとはオブジェクトに対する処理や操作のことを言います。例えば、ワークシートをアクティブにした時に発生するActivateイベントやセルをマウスでダブルクリックした時に発生するBeforeDoubleClickイベントなどがあります。
ここまでの解説の中でオブジェクトを操作するには「メソッド」を利用し、以下のように記述すると説明しました。

オブジェクト名.メソッド名

ここまでの知識であれば、ワークシートをアクティブにした時に発生するActivateイベントの記述は以下のようになるのでは?と思われる方もいらっしゃるかもしれませんが、こちらは単にWorksheetオブジェクトActivateメソッドを実行したに過ぎません。


Sub Sample()

 Worksheets("Sheet1").Activate

End Sub

※ドラッグ(スワイプ)すると全体を確認できます。

では、どのように記述するかというとVBE構造のモジュールの種類で少し触れた、シートモジュールブックモジュールにプロシージャとして記述します。
プロシージャの詳細について「エクセルVBAのプロシージャとは」で解説しますが、プロシージャとは複数の処理を一つにまとめたものになります。

このような特定のイベントが発生した時に実行されるプロシージャのことをイベントプロシージャと言います。通常のプログラミングは標準モジュールに記載すると説明しましたが、イベントプロシージャはシートモジュールやブックモジュールのようなオブジェクトモジュールに記載するということを覚えておきましょう。

イベントの使い方

下記はExcelのSheet1に対してワークシートをアクティブにした時に発生するイベントプロシージャです。

イベントプロシージャ

イベントプロシージャも「プロパティ」「メソッド」と同様に決まった書式に則って記述します。決まった書式とは、以下のようにオブジェクト名とイベント名の間に「_(アンダースコア)」で結んで記述します。

オブジェクト名_イベント名

イベントを設定する


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    
    Range("A1").Value = "VBA"
    
End Sub

※ドラッグ(スワイプ)すると全体を確認できます。

こちらはセルをダブルクリックした時に発生するイベントプロシージャになります。オブジェクト名は「Worksheet」でイベント名は「BeforeDoubleClick」になります。このイベントプロシージャの中の処理は「A1セルにVBAの文字列を代入する」処理になります。よって、以下のようにセルをダブルクリックした時にA1セルに「VBA」の文字列が代入されます。

VBAのイベント結果

ちなみにイベント名は直接入力する必要はなく、コードウィンドウのオブジェクトボックスからオブジェクトを選択し、プロシージャボックスからイベントを選択します。こうすることで入力ミスを無くすことができますので、選択からイベントを作成するようにしましょう。

VBEのコードウィンドウ

まとめ

今回はイベントについて解説しました。イベントはプロシージャとして実行されることが理解できたかと思います。次回はExcelのワークシートに対するイベントについて解説します。こちらではワークシートに対するイベントでどのようなものがあるかを確認できます。

次の記事: ワークシートに対するイベント >>

Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください。

VBAのIE操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE操作にも挑戦してみてください。

目次

VBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。