|
一般的に「プログラムを走らせっぱなしにして、何かの値や状態を監視する」
というやり方をしない方が良いと思います。詳しい説明はしませんが、
その方向で組もうとすると、なかなか安定した動作を確保できなくて
苦労するからです。
ですので"変化前と変化後の比較"をしたいなら、どこかに変化前の値を記憶・保存
しておき、変化したタイミングで値を最新のものと入れ替える。というような
考え方が無難かと思います。
この質問内容に沿ってサンプルを作ると、例えばグローバル変数を使って・・
Private Data1 As Variant, Data2 As Variant
Private Sub Worksheet_Activate()
Data1 = Range("A1").Value
Data2 = Range("A2").Value
End Sub
Private Sub Worksheet_Calculate()
With Range("A1")
If .Value <> Data1 Then
.Speak: Data1 = .Value
End If
End With
With Range("A2")
If .Value <> Data2 Then
.Speak: Data2 = .Value
End If
End With
End Sub
というようなコードになるでしょう。
|
|