1. ホーム
  2. excel

[解決済み] セルが変わると自動的にExcelマクロを実行する

2023-02-11 10:50:35

質問

特定のセルの値が変わるたびに、自動的にExcelマクロを実行するにはどうすればよいですか。

今現在、私の作業コードは

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("H5")) Is Nothing Then Macro
End Sub

ここで "H5" は監視される特定のセルであり Macro はマクロの名前である。

もっと良い方法はないでしょうか?

どのように解決するのですか?

あなたのコードはかなり良さそうです。

しかし、注意しなければならないのは Range("H5") へのショートカット・コマンドである Application.Range("H5") と等価である。 Application.ActiveSheet.Range("H5") . しかし、VBA などのプログラムによる変更によって、アクティブなシートでないときにワークシートのセル値が変更される可能性があります。

このことを念頭に置いて、私なら Target.Worksheet.Range("H5") :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Target.Worksheet.Range("H5")) Is Nothing Then Macro
End Sub

あるいは Me.Range("H5") イベントハンドラが問題のワークシートのコードページにある場合(通常はそうです)。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("H5")) Is Nothing Then Macro
End Sub

これが役に立つといいのですが...