Excel VBA 逆引き集 | イベント処理

Excel VBA
スポンサーリンク

イベント処理の基本

Excel VBAでは「セルを変更したら自動で処理」「ブックを開いたら初期化」「ボタンをクリックしたら動作」など、イベント処理を使うことでユーザー操作に応じた自動処理が可能になります。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。


基本の考え方

  • イベント処理とは?
    Excelで「何かが起きたとき」に自動で動く仕組み。
  • 代表的なイベント:
    • Workbookイベント → ブックを開いたとき、閉じたとき
    • Worksheetイベント → セルを変更したとき、選択したとき
    • UserFormイベント → ボタンをクリックしたとき、フォームを開いたとき
  • 書き方:
    • 対象のオブジェクト(Workbook、Worksheet、UserForm)にコードを書く。
    • Private Sub イベント名(...) の形で記述。

テンプレ1:ブックを開いたときにメッセージ表示

「ThisWorkbook」モジュールに記述。

Private Sub Workbook_Open()
    MsgBox "このブックを開いてくれてありがとう!"
End Sub
VB
  • ポイント:
    • ブックを開いた瞬間にイベントが発生。
    • 初期化処理や案内メッセージに便利。

テンプレ2:シートのセルを変更したときに処理

対象シートのコードウィンドウに記述。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
        MsgBox "A1~A10のセルが変更されました"
    End If
End Sub
VB
  • ポイント:
    • Worksheet_Change はセル変更イベント。
    • Intersect で対象範囲を限定。

テンプレ3:セルを選択したときに処理

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("B2")) Is Nothing Then
        MsgBox "B2セルが選択されました"
    End If
End Sub
VB
  • ポイント:
    • セルを選んだ瞬間にイベントが発生。
    • 入力補助や説明表示に使える。

テンプレ4:UserFormのボタンクリックイベント

UserFormに CommandButton1 を配置。

Private Sub CommandButton1_Click()
    MsgBox "ボタンがクリックされました!"
End Sub
VB
  • ポイント:
    • ボタンを押した瞬間にイベントが発生。
    • 入力値の保存や処理開始に使える。

テンプレ5:フォームを開いたときに初期化

Private Sub UserForm_Initialize()
    TextBox1.Value = "ここに入力してください"
End Sub
VB
  • ポイント:
    • フォームを開いた瞬間にイベントが発生。
    • 初期値を設定してユーザーに入力を促す。

例題で練習

'例1:ブックを開いたときにメッセージ表示
' → ThisWorkbook に Workbook_Open を記述

'例2:セル変更イベント
' → 対象シートに Worksheet_Change を記述

'例3:セル選択イベント
' → 対象シートに Worksheet_SelectionChange を記述

'例4:UserFormのボタンクリック
' → UserFormに CommandButton1_Click を記述

'例5:UserForm初期化
' → UserFormに UserForm_Initialize を記述
VB

初心者向けポイント

  • イベントは「自動で動く仕組み」 → ユーザー操作に応じて処理が走る。
  • どこに書くかが重要 → Workbookイベントは「ThisWorkbook」、Worksheetイベントは「対象シート」、UserFormイベントは「フォーム」。
  • 対象範囲を限定する工夫Intersect を使うと無駄な処理を防げる。
  • Initializeで初期化 → フォームやブックを開いたときに準備できる。

👉 この「イベント処理テンプレ」を覚えておけば、Excel VBAで ユーザー操作に応じた自動処理や便利な入力補助 を簡単に実装できます。

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