|
B2セルからB51セルまでDDEで取り込んだリアルタイムデータが入ります。各セルのリアルタイムデータの更新間隔は一定ではなく1秒間に1回更新されることもあれば5分間に1回更新されることもあります。また、B2セルからB51セルまで偶然の一致を除いて更新されるタイミングはバラバラです。最終的に実現したいことは、例えばB2セルのリアルタイムデータが5回更新された時に5回とも同じ値だったのか否かがわかるようになりたいのです。B2セルからB51セルの各セルで上記のことがわかるようになりたいのです。そこで考えたのは、とりあえずB2セルのみにリアルタイムデータが入る設定にしてB2セルの値が更新される度にB2セルの値を右隣にどんどん蓄積していってC2セルからG2セルの値が全て等しい時に条件付書式もしくはポップアップで教えてくれるという方法です。そこで以下のVBAを書いてみました。実行したところ、データが更新されるたびにB2セルの値を右隣のセルにどんどん蓄積していってくれました。ところが、B2セルとB3セルの2箇所で異なったリアルタイムデータを受信するようにしたところ、B2セルのデータが更新していない時でもB3セルのデータが更新したタイミングで更新されていないB2セルのデータをC2セルに蓄積してしまいます。OnDataに望みをかけていたのですが駄目でした。DDEでリアルタイムデータを取ってきているのでchangeイベントプロシージャも使えません。これ以上どうしたらよいのかわかりません。どなたか教えていただけないでしょうか?よろしくお願いいたします。
Option Explicit
Dim mystart As Integer
Dim mycontinue As Boolean
Sub 監視開始()
mystart = 3
mycontinue = True
ActiveSheet.OnData = "データ"
End Sub
Sub 監視終了()
mycontinue = False
End Sub
Sub データ()
Dim nexttime As Date
Sheets(1).Cells(2, mystart) = Cells(2, 2)
If mycontinue Then
mystart = mystart + 1
nexttime = Now() + TimeValue("00:00:01")
Application.OnTime nexttime, "データ"
End If
End Sub
|
|