Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


17726 / 76738 ←次へ | 前へ→

【64461】DDEで取り込んだ複数のリアルタイムデータが更新されるたびに蓄積する方法
質問  hoully E-MAIL  - 10/2/9(火) 16:51 -

引用なし
パスワード
   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

0 hits

【64461】DDEで取り込んだ複数のリアルタイムデータが更新されるたびに蓄積する方法 hoully 10/2/9(火) 16:51 質問
【64462】Re:DDEで取り込んだ複数のリアルタイムデー... よろずや 10/2/9(火) 18:35 回答
【64463】Re:DDEで取り込んだ複数のリアルタイムデー... n 10/2/9(火) 18:54 発言
【64464】Re:DDEで取り込んだ複数のリアルタイムデー... hoully 10/2/9(火) 20:57 お礼
【64467】Re:DDEで取り込んだ複数のリアルタイムデー... hoully 10/2/10(水) 21:23 お礼
【64469】Re:DDEで取り込んだ複数のリアルタイムデー... n 10/2/10(水) 23:19 発言
【64472】Re:DDEで取り込んだ複数のリアルタイムデー... hoully 10/2/11(木) 8:05 お礼
【64466】Re:DDEで取り込んだ複数のリアルタイムデー... UO3 10/2/10(水) 10:15 回答
【64468】Re:DDEで取り込んだ複数のリアルタイムデー... hoully 10/2/10(水) 21:27 お礼

17726 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free