目次
1. Workbookイベントとは何か
Workbookイベントとは、
Excelブック全体に対して発生する操作や状態変化を検知するイベントです。
これらのイベントはすべて、
VBE(Visual Basic Editor)の ThisWorkbook に記述します。
Workbookイベントの特徴は次のとおりです。
- ブック単位で処理を制御できる
- 開く・閉じる・保存といった重要な操作を扱える
- 全シートに共通する動作を管理できる
「このファイルをどう動かすか」を制御するのが、Workbookイベントの役割です。
2. よく使われるWorkbookイベント一覧
Workbookイベントは多数ありますが、
実務で頻繁に使われるものはある程度決まっています。
以下は、特に使用頻度の高い代表的なイベントです。
| イベント名 | 発生タイミング | 主な用途 |
|---|---|---|
| Workbook_Open | ブックを開いた直後 | 初期化処理、画面設定 |
| Workbook_BeforeClose | ブックを閉じる直前 | 保存確認、終了処理 |
| Workbook_BeforeSave | 保存処理の直前 | 入力チェック、保存制御 |
| Workbook_NewSheet | シート追加時 | 初期レイアウト設定 |
| Workbook_SheetChange | いずれかのシートで変更 | 共通入力チェック |
| Workbook_SheetActivate | シート切替時 | 表示制御 |
これらは、
ユーザーの操作を起点に自動で発生するイベントです。
3. Open・BeforeClose系イベントの位置づけ
Workbookイベントの中でも、
特に重要なのが「Open」「BeforeClose」「BeforeSave」です。
これらは、
- ファイルの開始
- ファイルの終了
- ファイルの保存
という ライフサイクルの要所 を制御します。
たとえば、
- 開いた瞬間に初期設定を行う
- 閉じる前に入力漏れをチェックする
- 保存前にデータを整形する
といった処理を自然に組み込めます。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'保存前のチェック処理
End Sub
4. Sheet系Workbookイベントとは
Workbookイベントには、
「Sheet~」で始まるイベントも存在します。
これらは、
- 特定のシートではなく
- ブック内のすべてのシートを対象
として動作します。
代表例が次のイベントです。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'どのシートでもセルが変更されたときの処理
End Sub
このように、
- 共通ルールを一括管理したい
- 全シートに同じ制御をかけたい
場合に非常に有効です。
※ Worksheet_Change と Workbook_SheetChange は別物
(前者は特定シート、後者は全シート対象)
5. Workbookイベント一覧を把握する重要性
Workbookイベントを一覧で把握しておくと、
- どのタイミングで処理が書けるか分かる
- 無理な構成を避けられる
- 後からの拡張や保守が楽になる
といったメリットがあります。
コメント