Excel VBAでセルの変更を検知する方法


  1. Worksheet_Changeイベントを使用する方法: Worksheet_Changeイベントは、ワークシート上のセルの変更を検知するために使用されます。次のコード例は、このイベントを使用して変更を検知し、メッセージボックスに変更されたセルのアドレスを表示する方法です。
Private Sub Worksheet_Change(ByVal Target As Range)
    MsgBox "変更されたセルのアドレス: " & Target.Address
End Sub

このコードをワークシートのコードモジュールに貼り付けます。

  1. SelectionChangeイベントとBeforeDoubleClickイベントを使用する方法: SelectionChangeイベントとBeforeDoubleClickイベントを組み合わせて使用することで、セルの変更を検知することができます。次のコード例は、この方法を使用して変更を検知し、メッセージボックスに変更されたセルのアドレスを表示する方法です。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static previousCell As Range
    Set previousCell = Target
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, previousCell) Is Nothing Then
        MsgBox "変更されたセルのアドレス: " & Target.Address
    End If
End Sub

このコードをワークシートのコードモジュールに貼り付けます。

  1. Application.OnKeyメソッドを使用する方法: Application.OnKeyメソッドを使用することで、特定のキーが押された場合にセルの変更を検知することができます。次のコード例は、Enterキーが押された場合に変更を検知し、メッセージボックスに変更されたセルのアドレスを表示する方法です。
Private Sub Workbook_Open()
    Application.OnKey "~", "DetectCellChange"
End Sub
Sub DetectCellChange()
    MsgBox "変更されたセルのアドレス: " & ActiveCell.Address
End Sub

このコードをExcelのワークブックのThisWorkbookコードモジュールに貼り付けます。

これらはいくつかのセル変更検知の方法とそれぞれのコード例です。必要に応じて、これらの方法を組み合わせたり、カスタマイズしたりすることができます。