目次
1. Worksheetイベントとは何か
Worksheetイベントとは、
特定のワークシートに対するユーザー操作や状態変化を検知するイベントです。
これらのイベントは、
VBE(Visual Basic Editor)の 各シート(Sheet1など) に記述します。
Worksheetイベントの特徴は次のとおりです。
- シート単位で処理を制御できる
- 入力操作と強く結びついている
- ユーザーの操作に即時反応できる
「このシートでは、こう動いてほしい」
というルールを実装するのが、Worksheetイベントの役割です。
2. よく使われるWorksheetイベント一覧
Worksheetイベントには多くの種類がありますが、
実務で頻繁に使われるものは限られています。
以下は、特に使用頻度の高い代表的なWorksheetイベントです。
| イベント名 | 発生タイミング | 主な用途 |
|---|---|---|
| Worksheet_Change | セルの値が変更されたとき | 入力チェック、自動計算 |
| Worksheet_SelectionChange | 選択セルが変わったとき | 入力誘導、強調表示 |
| Worksheet_Activate | シートが表示されたとき | 表示制御、初期化 |
| Worksheet_Deactivate | シートを離れるとき | 状態保存、チェック |
| Worksheet_BeforeDoubleClick | ダブルクリック前 | 操作制御 |
| Worksheet_BeforeRightClick | 右クリック前 | メニュー制御 |
これらはすべて、
ユーザー操作を起点に自動で発生するイベントです。
3. Change・SelectionChange系イベントの位置づけ
Worksheetイベントの中でも、
特に重要なのが Change と SelectionChange です。
Worksheet_Change
- 値が確定した後に発生
- 「値が変わった」という事実を検知
- 入力完了後のチェックに向いている
Worksheet_SelectionChange
- セルを選んだ瞬間に発生
- 「どこを操作しようとしているか」を検知
- 操作ガイドや誘導に向いている
この2つを理解することで、
Worksheetイベントの大半の実装が可能になります。
4. Worksheetイベントはどこに書くのか
Worksheetイベントは、
標準モジュールには記述できません。
必ず、
対象となるシートのコード画面に記述します。
Private Sub Worksheet_Change(ByVal Target As Range)
'セル変更時の処理
End Sub
この「Worksheet_」で始まるプロシージャが、
シート操作に応じて自動実行されます。
5. Workbookイベントとの違いを簡単に整理
WorksheetイベントとWorkbookイベントの違いを、
簡単に整理しておきます。
| 項目 | Worksheetイベント | Workbookイベント |
|---|---|---|
| 対象 | 特定のシート | ブック全体 |
| 記述場所 | 各シート | ThisWorkbook |
| 主用途 | 入力・操作制御 | 起動・終了・保存 |
| 影響範囲 | 限定的 | 広範囲 |
「入力周りはWorksheet」
「全体制御はWorkbook」
という使い分けが基本です。
6. Worksheetイベント一覧を押さえる重要性
Worksheetイベントを一覧で把握しておくと、
- どの操作に反応できるか分かる
- 無理な実装を避けられる
- 保守性の高い設計ができる
といったメリットがあります。
コメント