セルが変更されるたびに Excel にマクロを自動的に実行させる簡単な方法はありますか?
問題のセルはWorksheet("BigBoard").Range("D2")
私が単純な Google の調査だと思っていたことが、より複雑であることが証明されています。関連するすべてのサンプルが交差している (それらが何であれ)、色の書式設定、または無関係に見えるその他の多くのものです。
はい、これはワークシート イベントを使用して可能です。
Visual Basic Editor で、関心のあるワークシート (「BigBoard」など) を開きます。左上のツリーでワークシートの名前をダブルクリックします。モジュールに次のコードを配置します。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Me.Range("D2")) Is Nothing Then Exit Sub
Application.EnableEvents = False 'to prevent endless loop
On Error Goto Finalize 'to re-enable the events
MsgBox "You changed THE CELL!"
End If
Finalize:
Application.EnableEvents = True
End Sub
別のオプションは
Private Sub Worksheet_Change(ByVal Target As Range)
IF Target.Address = "$D$2" Then
MsgBox("Cell D2 Has Changed.")
End If
End Sub
これは よりも少ないリソースを使用すると思いますIntersect
。これは、ワークシートが大幅に変更された場合に役立ちます。
交差メソッドのターゲット セルを名前テーブル配列にする方法を見つけようとして、特定のシートの任意のセルまたはセルのセットが変更されたときに何かを実行する簡単な方法を見つけました。このコードはワークシート モジュールにも配置されます。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 0 Then
'mycode here
end if
end sub