VBAでは操作をきっかけとして自動的に実行されるプロシージャの事を「イベントプロシージャ」と言います。自動実行のきっかけとなる操作の事を「イベント」と呼び、「イベント」はブックやワークシート、ユーザーフォーム等のオブジェクトに対して発生します。このイベントを利用して「ブックを開いた時に発生するイベントプロシージャの作り方」について紹介します。
構文
イベントプロシージャの記述方法は以下の通りです。
Private Sub Workbook_Open()
[実行する処理内容]
End Sub
[説明]:
ブックを開いた時に実行されるイベントプロシージャです。
[実行する処理内容] | イベントが実行された時に処理する内容を記述します。 |
[記述例]:
Private Sub Workbook_Open()
MsgBox "ブックが開きました。"
End Sub
作り方
(1)VBE(VBA記述画面)を開きます。
※画面の開き方はこちらの手順を参考にして下さい。
(2)ブックオブジェクトをダブルクリックします。
(3)オブジェクトボックスの▼ボタンをクリックします。
(4)プルダウン一覧の中から「WorkBook」を選択します。
(5)この時点で「Workbook_Open」イベントプロシージャが表示されます。(これは自動的に作成される仕組みとなっている様です。)
(6)(5)で作成したイベントプロシージャに実行させる内容を記述します。以下で記述例を紹介しますが、今回はブックを開いた時にメッセージを表示する方法について紹介します。
[プログラミング例]:
Private Sub Workbook_Open()
MsgBox "ブックが開きました。"
End Sub
内容は、「ブックを開いた時に”ブックが開きました。”をMsgBoxで表示して下さい。」との意味になります。
[実行例]:
今回の例としては、事前にBook1.xlsmブックをC:\テストに登録しておきます。
(実行前)
C:\テストに登録してあるBook1.xlsmブックを開きます。
(実行後)
Book1.xlsmブックが開くと同時に「ブックが開きました。」が表示されます。(※Book1.xlsmブックを開いた事で、プロシージャが実行されてメッセージが表示されました。)
[サンプル]:
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。
ブックを開いた時に発生するイベントプロシージャの作成方法についての説明は以上です。
おわりに
今回はブックを開いた時に発生するイベントプロシージャの作成方法について説明しました。ブックを開いた際にメッセージを表示させたい場合等に活用して下さい。