Excel VBA質問箱 IV

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

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


3072 / 13644 ツリー ←次へ | 前へ→

【64456】複数のリアルタイムデータの更新に応じてデータを蓄積するには hoully 10/2/8(月) 21:06 質問[未読]
【64457】Re:複数のリアルタイムデータの更新に応じ... UO3 10/2/8(月) 22:01 発言[未読]
【64460】Re:複数のリアルタイムデータの更新に応じ... hoully 10/2/9(火) 16:39 お礼[未読]

【64456】複数のリアルタイムデータの更新に応じて...
質問  hoully E-MAIL  - 10/2/8(月) 21:06 -

引用なし
パスワード
   B2セルからB51セルまでリアルタイムデータが入ります。各セルのリアルタイムデータの更新間隔は一定ではなく1秒間に1回更新されることもあれば5分間に1回更新されることもあります。また、B2セルからB51セルまで偶然の一致を除いて更新されるタイミングはバラバラです。最終的に実現したいことは、例えばB2セルのリアルタイムデータが5回更新された時に5回とも同じ値だったのか否かがわかるようになりたいのです。B2セルからB51セルの各セルで上記のことがわかるようになりたいのです。そこで、とりあえずB2セルのみにリアルタイムデータが入る設定にして以下のVBAを書いてみました。実行したところ、データが更新されるたびにB2セルの値を右隣のC2セルにどんどん蓄積していってくれました。ところが、B2セルとB3セルの2箇所で異なったリアルタイムデータを受信するようにしたところ、B2セルのデータが更新していない時でもB3セルのデータが更新したタイミングで更新されていないB2セルのデータをC2セルに蓄積してしまいます。OnDataに望みをかけていたのですが駄目でした。これ以上どうしたらよいのかわかりません。どなたか教えていただけないでしょうか?よろしくお願いいたします。

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

【64457】Re:複数のリアルタイムデータの更新に応...
発言  UO3  - 10/2/8(月) 22:01 -

引用なし
パスワード
   ▼hoully さん:

 こんばんは。
 OnDataは使ったことがないのでよくわかりません。
 今は隠しプロパティになっているんではなかったでしたっけ?
 ごく普通に、シートモジュールのChangeイベントルーティンで
 更新を把握して対応されてはいかがでしょうか。
 同じ値の更新だったかどうかは、いろんな方法があると思いますが。
 

【64460】Re:複数のリアルタイムデータの更新に応...
お礼  hoully E-MAIL  - 10/2/9(火) 16:39 -

引用なし
パスワード
   ▼UO3 さんへ:

ご回答ありがとうございます。せっかくご回答いただいたのですが大切な情報を記述し忘れていました。リアルタイムデータはDDEから取り込んでいます。従いまして、DDEに反応しないchangeイベントプロシージャは使用できないのです。ありがとうございました。

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