関数・メソッド

ブックを開く時に処理実行する【Workbook_Open】【auto_open】【ExcelVBA】

構文

Workbook_Open()
auto_open()

マクロブックを開いた時に自動実行されるイベントです。

Workbook_Openイベント/auto_openイベントのサンプルコード

'■ThisWorkbookに記載必要です。
Private Sub Workbook_Open()

    MsgBox "Workbook_Open実行!"

End Sub
'■標準モジュール(Module1等)に記載必要です。2つ以上のモジュールに記述するとエラーになります
Private Sub auto_open()
    
    MsgBox "auto_open実行!"

End Sub

Workbook_OpenとAuto_Openのイベント比較

相違点Workbook_Openauto_open
記述するモジュールThisWorkbook標準モジュール(Module1)
他ブックに記述があった場合実行される実行されない

実行される順番は以下の通りです。

  1. Workbook_Open
  2. auto_open

なぜ似たようなイベントがあるのか?

古い時代のExcelの仕様で、auto_openイベントが存在していました。
その後、Workbook_Openイベントが作成された為、auto_openイベントは互換性保持のために存在します。
(昔に作成したエクセルマクロが、今のVerで動作するよう互換性保持する)

特に理由なければ、Workbook_Openのみ覚える形で問題ありません。

関連記事

以下の記事は初心者の方でもわかりやすいように(コピペですぐ動作できるように)
auto_openイベントで記載しています。auto_openでも問題なく動きますのでご認識ください。

特定のシートのみで、OnKeyイベントを取得したい
「ActiveSheetをPDF保存する」をパーツ化する【ショートカットキー】【VBAマクロ】
「ActiveSheetをタブ区切りのテキストで出力保存する」をパーツ化する。【VBAマクロ】
「ActiveSheetをCSV出力して保存する」をパーツ化する。【ショートカットキー】【VBAマクロ】
「F1」キーを無効設定し、ヘルプを起動させない【エクセルマクロ】
「Ctrl+Shift+Q」で「セル結合・セル結合解除」をパーツ化する。【エクセルマクロ】
「Ctrl+Shift+V」で「値で貼付する」をパーツ化する。【エクセルマクロ】

コメント

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