教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでシートが変更された時に処理を実行する方法

構文

構文は以下の通りです。

Private Sub Worksheet_Change(ByVal Target As Range)
    ' ここにシートが変更された時に実行したい処理を書く
End Sub

解説

Worksheet_Changeは、シートが変更された時に自動的に実行されるイベントです。Targetは、変更されたセル範囲を示す引数です。Targetには変更されたセルの情報が入ります。

プログラミング例

具体的なプログラミング例を紹介します。

Private Sub Worksheet_Change(ByVal 変更されたセル As Range)
    If 変更されたセル.Address = "$A$1" Then
        MsgBox "セルA1が変更されました"
    End If
End Sub

上記のプログラムは、変更されたセルがA1であるかどうかを確認し、セルA1が変更された時にメッセージを表示します。

まとめ

Worksheet_Changeイベントは、シートが変更された時に自動的に処理を実行できる便利な方法です。特定のセルが変更された時にのみ処理を実行することも可能です。このようなイベントは、例えばデータ入力が完了した時に特定の計算を行ったり、データの確認を促すメッセージを表示したりするのに役立ちます。