ワークブックのイベントを追加するには

ワークブックを開いたときや閉じたときのイベントを取得し、特定の操作させることができます。

「ワークブックを開いたときに特定のシートを選択させる」、「ワークブックを閉じたときに保存させる」といったことができるようになります。

イベントは Workbook_イベント名 のように書きます。

これは、VBE(エディタ)の上部にある(Genaral)でWorkbookを、(Declarations)でOpenを選択することで同じ記述が自動で行われます。

イベントによって引数の書き方が違うので、自分で書かずに(Genaral)(Declarations)から選択してください。

ワークブックを開いたときのイベント
Private Sub Workbook_Open ()
・・・
End Sub


ワークブックを閉じたときのイベント
Private Sub Workbook_Close (Cancel As Boolean)
・・・
End Sub


ワークブックを開いたときに特定のシートを選択するサンプル

Sheets("Sheet2").Select でシート"Sheet2"を選択してから、
Cells(1,1).Select でセルA1を選択しています。
Private Sub Workbook_Open ()
    ' Sheet2を選択
    Sheets("Sheet2").Select
    ' A1を選択
    Cells(1,1).Select
End Sub


ワークブックを閉じたときに強制的に保存するサンプル

ActiveWorkBook.Saved で現在のワークブックの保存状態を確認しています。
Trueなら保存済、Falseなら未保存です。

ActiveWorkBook.Save でブックを保存します。
Private Sub Workbook_Close (Cancel As Boolean)
    If Not ActiveWorkBook.Saved Then
        ' ブックを保存
        ActiveWorkBook.Save
    End If
End Sub


ワークブックのイベントの種類

一般的なイベント

イベント名内容
Activeワークブックがアクティブになったときに発生
BeforeCloseワークブックが閉じる直前に発生
BeforePrintワークブックが印刷される直前に発生
BeforeSaveワークブックが保存される直前に発生
Deactiveワークブックが非アクティブになったときに発生
NewSheetワークブックに新しいシートが作成されたときに発生
Openワークブックが開いたときに発生


シートのイベント

イベント名内容
SheetActiveワークシートがアクティブになったときに発生
SheetBeforeDoubleClickワークシートがダブルクリックされたとき、既定の処理がされる前に発生
SheetBeforeRightClickワークシートが右クリックされたとき、既定の処理がされる前に発生
SheetCalculateワークシートが再計算されたときに発生
SheetChangeワークシートのセルが変更されたときに発生
SheetDeactiveワークシートが非アクティブになったときに発生
SheetFollowHyperLinkワークブック内のハイパーリンクがクリックされると発生
SheetPivotTableUpdateピボットテーブルが更新されたときに発生
SheetSelectionChangeワークシートで選択範囲が変更されると発生


特殊なイベント

イベント名内容
WindowActiveブックウィンドウがアクティブになったときに発生
WindowDeactiveブックウィンドウが非アクティブになったときに発生
WindowResizeブックウィンドウのサイズが変更されたときに発生
AddinInstallワークブックにアドインがインストールされたときに発生
AddinUninstallワークブックにアドインがアンインストールされたときに発生
AfterXmlExportワークブックからXMLファイルをエクスポートした後に発生
AfterXmlImportワークブックにXMLファイルをインポートした後に発生
BeforeXmlExportワークブックからXMLファイルをエクスポートする前に発生
BeforeXmlImportワークブックにXMLファイルをインポートする前に発生
PivotTableCloseConnectionピボットテーブルのデータソースへの接続が終了した後に発生
PivotTableOpenConnectionピボットテーブルのデータソースへの接続が終了した後に発生
RowsetCompleteレコードセット内を移動したり、
ピボットテーブルの行セットアクションを呼び出したときに発生



Excel VBA講座

関連リンク
 セル、シート、ブックの参照や操作、
 書式設定に関するサンプル集。

 VBScriptの文字列、日付、ファイルの  操作に関するサンプル集。




セルの参照
セルを扱う
セルの範囲を扱う
行や列を扱う
セルに値を取得・設定する
セルに文字列で取得する
セルを選択する
選択しているセルを参照する
セル数、行数、列数を求める
行番号、列番号を求める
セルに名前を付けて参照する
行・列を表示・非表示にする
セルの位置を取得する
表全体を参照する
表の終端を取得する
セルのアドレスを取得する
セルを検索する
セルを並び替える

セルの書式
フォントサイズを設定する
フォント名を設定する
フォントの太字・斜体を設定する
取消線を設定する
上付き文字を設定する
下付き文字を設定する
セルの表示形式を設定する
配置を設定する
横書き・縦書きを設定する
文字の折り返しを設定する
セルを結合・解除する
セルの背景色・文字色を設定する
セルに罫線を引く(線の位置)
セルに罫線を引く(線の種類)
セルに罫線を引く(線の太さ)
セルに罫線を引く(線の色)
セル範囲の周囲に罫線を引く
セルを挿入する
セルを削除する
行の高さ・列の幅を設定する
行の高さ・列の幅を自動調整する
セルをロックする
文字列の一部の書式を設定する
セルに数式を設定する
セルに条件付き書式を設定する
セルにハイパーリンクを設定する
セルに入力規則を設定する
セルに入力規則を削除する
セルの入力規則を詳細設定する


Copyright (C) ExcelVBA@Workshop All rights reserved.