こんばんは。
それは、何かの測定器ですか?逆に、もしよろしかったら、どんな機械で、どんな風に設定するとか教えていただきたいと思っております。この種の回答は、まだ、実験が出来ないので、これで、4回目になりますが、まだ、想像の範囲なんです。(すみません、勝手なことを言って)
DDE は、DDE関数はあり、やり方は分かるのですが、実際の試すための道具がないということで、やったことがありません。
>イベントプロシージャの(worksheet_change)で試してみたのですが、
やっぱりそうなんですね。前回の質問の時には、ここら辺りが曖昧になってしまいました。
手前勝手な話はここまでにして、私の知る範囲では、OnTime メソッドを使用します。
TimerStart で、マクロを動かします。以下は、A1 にデータが入ってくるものとして、5秒ごとにチェックし、A1 のデータが変更あったら、2列目に、その変更のデータを書き写すというマクロです。付録として、解除用のマクロがついています。ただし、別のマクロが動いている場合は、たぶん、出来ないと思います。
'-------------------------------------------
'標準モジュールが最適
Private myOnTime As Date 'OnTime 用の時間データ
Private BackData As Variant '前回のセルのデータ
Sub TimerStart()
'タイマー
'ここにチェックマクロを置く
If BackData = Empty Then
BackData = Cells(1, 1).Value
Cells(65536, 2).End(xlUp).Offset(1).Value = Cells(1, 1).Value
ElseIf BackData <> Cells(1, 1).Value Then
Cells(65536, 2).End(xlUp).Offset(1).Value = Cells(1, 1).Value
BackData = Cells(1, 1).Value
End If
'次のチェック時間 (以下は5秒後)
myOnTime = Now() + TimeValue("00:00:05")
Application.OnTime myOnTime, "TimerStart"
End Sub
Sub TimerStop()
'タイマー停止
On Error Resume Next
Application.OnTime myOnTime, "TimerStart", , False
On Error GoTo 0
If Err.Number > 0 Then
MsgBox "設定が残っていません。"
Else
MsgBox "設定が解除されました。"
End If
End Sub
お礼
Wendy様、こんばんは 初めに、時間を割いての検討に心から感謝します。 この度ご指摘いただきました”OnData"メッソドですが、見事にマッチいたしました。 隠しメッソドとしてこんなものがあるなんて、まったくわかりませんでした。 これで先に進むことができます。本当にありがとうございました。 また何かの機会にお会いできるのを、楽しみにしています。