ブックを開いた時に
・マクロを自動的に実行
できます!
実現方法は2種類ありますが、ここでは
・公式サイトに記載されている方法
を記載します!
※もう1つは古い方法です。
※古い方法も参考として記載します。
Openイベントを利用することで
実現します!
※具体的にはSubプロシージャ「Workbook_Open」を作成します。
Openイベントとは
ブックを開いた時に発生するイベントです。
Openイベントが発生すると、
・Excelが
・Subプロシージャ「Workbook_Open」を
・自動的に実行
してくれます。
よって
・Subプロシージャ「Workbook_Open」を作成することで
・ブックを開いた時にマクロが自動実行される
ようになります。
Subプロシージャ「Workbook_Open」は
・「ThisWorkbook」モジュール内に作成
する必要があります。
VBAコード
ここでは例として
・デスクトップ配下の「sampl_001.xlsm」の
・「ThisWorkbook」モジュール内のSubプロシージャ「Workbook_Open」の中に
・メッセージを表示するVBAコード
します。
※メッセージ「おはようございます!本日もよろしくお願いします!」を表示するVBAコードを記載します。
自動的に作成されたSubプロシージャ「Workbook_Open」の中に、VBAコードを記述します。
Private Sub Workbook_Open()
MsgBox ("おはようございます!本日もよろしくお願いします!")
End Sub
実行結果
デスクトップ配下の「sampl_001.xlsm」 を一旦閉じて、再度開くと
・メッセージ「おはようございます!本日もよろしくお願いします!」
が表示されました。
※ブックを開いた時にマクロを自動実行できました。
参考①(Auto_Openについて)
Subプロシージャ「Auto_Open」でも、ブックを開いた時にマクロを自動実行できます
Subプロシージャ「Auto_Open」もSubプロシージャ「Workbook_Open」と同様に、ブックを開いた時にExcelにより自動実行されます。
ですがSubプロシージャ「Auto_Open」は
・古い方法
・互換性のために残されているもの
であるため、使用は控えるべきです。
なおSubプロシージャ「Auto_Open」は、標準モジュール内に記述します。
※「ThisWorkbook」モジュール内ではなく。
参考②
OpenイベントやSubプロシージャ「Workbook_Open」の詳細は、公式サイトをご確認ください。
↑「Auto_Openを使って特定のブックを開くたびに実行~」とありますが、上記の公式サイトにはSubプロシージャ「Workbook_Open」の使用方法が記載されています。