Home > 即効テクニック > Excel VBA > セル操作関連のテクニック > 特定のセル範囲が変更されたときに処理を実行する

即効テクニック

セル操作関連のテクニック

特定のセル範囲が変更されたときに処理を実行する

(Excel 2000/2002/2003)
●概要●
Intersectメソッドと、ワークシートのChangeイベントを組み合わせることで、特定のセル範囲が変更されたときのみ処理を実行することができます。Intersectメソッドは、引数に指定したRangeオブジェクトへの参照の共通部分への参照を返します。共通部分が無い場合、Nothingを返します。
また、ワークシートのChangeイベントは、引数Targetに変更されたセル範囲を表すRangeオブジェクトの参照が渡されます。これらを利用して特定のセル範囲が変更されたときのみ処理を実行するマクロを作成することができます。

 構文 Intersect(Args1, Args2,[Args3]・・・・[Args30])
 設定項目    内容
 Args      Rangeオブジェクトへの参照

次のサンプルは、値を変更したセルがセルA1〜B5に含まれる場合、メッセージボックスを表示し、そうでない場合は何もしません。

●サンプル●
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A1:B5")) Is Nothing Then
        Exit Sub
    Else
        MsgBox "セルの値が変更されました"
    End If
End Sub