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

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

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

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

(Excel 2000/2002/2003/2007/2010)

Intersectメソッドと、ワークシートのChangeイベントを組み合わせることで、特定のセル範囲が変更されたときのみ処理を実行することができます。

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

Intersectメソッドは、引数に指定したセル範囲の中で共通するセル範囲を表すRangeオブジェクトを返します。共通部分が無い場合は、Nothingを返します。

また、ワークシートのChangeイベントでは、変更されたセル範囲を表すRangeオブジェクトが引数Targetに渡されます。これらを利用して特定のセル範囲が変更されたときのみ処理を実行するマクロを作成することができます。

次のサンプルは、値を変更したセルがセル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