【VBA】ブックを開いた時にマクロを自動実行する

ブックを開いた時に
 ・マクロを自動的に実行
できます!

実現方法は複数ありますが、ここでは
 ・公式サイトに記載されている方法
を記載します!

Openイベントを利用することで
実現します!

PR

Openイベントとは

ブックを開いた時に発生するイベントです。

Openイベントが発生すると、
 ・Excelが
 ・Subプロシージャ「Workbook_Open」を
 ・自動的に実行
してくれます。

よって
 ・Subプロシージャ「Workbook_Open」を作成することで
 ・ブックを開いた時にマクロが自動実行される
ようになります。

Subプロシージャ「Workbook_Open」の中に、「ブックを開いた時に自動実行したい処理」を記述します。


Subプロシージャ「Workbook_Open」は
 ・「ThisWorkbook」モジュール内に作成
する必要があります。

「ThisWorkbook」モジュール
「ThisWorkbook」モジュール
PR

VBAコード

ここでは例として
 ・デスクトップ配下の「sampl_001.xlsm」の
 ・「ThisWorkbook」モジュール内のSubプロシージャ「Workbook_Open」の中に
 ・メッセージを表示するVBAコード
します。
※メッセージ「おはようございます!本日もよろしくお願いします!」を表示するVBAコードを記載します。

デスクトップ配下の「sampl_001.xlsm」
デスクトップ配下の「sampl_001.xlsm」

「ThisWorkbook」モジュールの下記のプルダウンに「Workbook」と「Open」を指定にすれば、Subプロシージャ「Workbook_Open」が自動的に作成されます。

自動的に作成されたSubプロシージャ「Workbook_Open」
自動的に作成されたSubプロシージャ「Workbook_Open」


自動的に作成されたSubプロシージャ「Workbook_Open」の中に、VBAコードを記述します。

Private Sub Workbook_Open()

    MsgBox ("おはようございます!本日もよろしくお願いします!")

End Sub
PR

実行結果

デスクトップ配下の「sampl_001.xlsm」 を一旦閉じて、再度開くと
 ・メッセージ「おはようございます!本日もよろしくお願いします!」
が表示されました。
※ブックを開いた時にマクロを自動実行できました。

実行結果
実行結果
PR

参考①(Auto_Openについて)

Subプロシージャ「Auto_Open」でも、ブックを開いた時にマクロを自動実行できます

Subプロシージャ「Auto_Open」もSubプロシージャ「Workbook_Open」と同様に、ブックを開いた時にExcelにより自動実行されます。

ですがSubプロシージャ「Auto_Open」は
 ・以前のバージョンとの互換性を保持するために残されているもの
であるため、使用は控えるべきです。

既にSubプロシージャ「Auto_Open」で作成されている場合は、わざわざSubプロシージャ「Workbook_Open」へ作成し直す必要はありません。

Microsoftの公式ページには、「Auto_Open」に関する記載はありません。
※私が調査した限りにおいて。


なおSubプロシージャ「Auto_Open」は、標準モジュール内に記述します。
※「ThisWorkbook」モジュールではなく。

PR

参考②

OpenイベントやSubプロシージャ「Workbook_Open」の詳細については、公式サイトをご確認ください。


↑「Auto_Openを使って特定のブックを開くたびに実行~」とありますが、上記の公式サイトにはSubプロシージャ「Workbook_Open」の使用方法が記載されています。

タイトルとURLをコピーしました