- ベストアンサー
システムの時刻を利用しながら800ミリ秒毎のイベント発生
現在For~Next文とSleep(700)を使用し、 イベントの処理時間を100ミリ秒と換算し、 2台のPCで同じコードを適用させ、 約800ミリ秒ごとにイベントを発生させております。 しかし、処理コード中にIf文やFor文も多数使用しているため、 取得条件の違いや、システムの負荷(?)、PCの性能(?)より遅延が発生していたり、 2台のPC間で一時間当たりの取得情報の量に違いがあることがわかりました。 2台のPCはNTPによる時刻同期により時刻のズレはないものとします。 はたして、システムから時刻を取得しつつ、 正確な800ミリ秒ごとのイベントを発生させる方法はあるのでしょうか。 面倒くさい質問で申し訳ありませんが、どうかよろしくお願いいたします。 現在のコードを以下に記します。 Sub ●約800ミリ秒ごとイベント発生プログラム●() Dim n As Long 'ループ用カウンタ Dim data As String For n = 1 To 26500 'ここから記録機能 Cells(n, "A") = Time Sleep (700) Calculate DoEvents '本当はここにイロイロなコードが入ります。 'ここに入るコードはスグに終わるときもあれば '80ミリ秒くらいかかるときもあります。 Next End Sub
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#22222
回答No.3
その他の回答 (2)
- freemank
- ベストアンサー率75% (3/4)
回答No.2
noname#22222
回答No.1
お礼
すみません、初心者であるため未だに実行できずにいます。 Private Sub ~の部分を別のモジュール(?)として コピペしなければならないのかもしれないのでしょうね(よくわかりませんが)。 しかし、Loopを使用しているところがヒントになり、 自分のプログラムは期待通りの動作をさせることができるようになりました。 ご回答、ありがとうございました。