【VBA】Worksheetイベント一覧|Change・SelectionChange・Activateの動作と使い方を徹底解説

スポンサーリンク

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イベントを一覧で把握しておくと、

  • どの操作に反応できるか分かる
  • 無理な実装を避けられる
  • 保守性の高い設計ができる

といったメリットがあります。

コメント

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