Excel VBA質問箱 IV

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

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


5275 / 76732 ←次へ | 前へ→

【77070】Re:0.1秒単位でのマクロの実行の仕方を教えてください
質問  β  - 15/5/13(水) 5:52 -

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


質問の意図を取り違えていたようです。
10:00:00に何か実行、そして、さらに 10:00:00:04 にも 何か実行。
こういうように受け取ってしまいました。
そうではなく、10:00:00:04 に何か実行ということだったんですね。
失礼しました。

微妙に狂った時計に合わせるということなら、OnTime では苦しいですね。
ichinoseさんのサンプルのように 0.1秒加えたつもりでも、実際には 0.2秒おくれたり
0.3秒遅れたりしますから。Now() そのもので実行しても、0.1秒程度は遅れることもあります。

精密さを求めるなら API の SetTimer,KillTimer でしょうね。

h tp://note.phyllo.net/?eid=1106267

ただ、これは時刻指定ではなく、指定ミリ秒後に実行ということになりますから
10:00:00:04 まで、何ミリ秒なのかを計算しなければいけません。
計算している間に、その計算結果のミリ秒の値が求めるべきものではなくなっているとか?

何よりも、この時刻はPC設定時刻ですから、これが0.4秒くるっていれば意味がないですね。
(おうおうにして、これぐらいはくるってますよね)

なやみますね。

たとえば 10:00:00 に実行予約しておく。
で、その予約されたプロシジャの先頭で 4ミリ秒停止させる。
Application.Wait は(原則)秒単位ですので、精密にやろうとすれば、API のSleep を用いる。
でも、これにも誤差はあります。平気で 10〜15ミリ秒は狂うみたいです。

h tp://dream-drive.net/archives/2011/09/excel_vba1wait.html
h tp://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1467582304

結論からいえば、4ミリ秒の精度は困難では?
お役に立てずごめんなさい。
271 hits

【77067】0.1秒単位でのマクロの実行の仕方を教えてください たか 15/5/12(火) 22:30 質問[未読]
【77068】Re:0.1秒単位でのマクロの実行の仕方を教え... β 15/5/12(火) 23:33 発言[未読]
【77069】Re:0.1秒単位でのマクロの実行の仕方を教え... たか 15/5/13(水) 0:20 発言[未読]
【77070】Re:0.1秒単位でのマクロの実行の仕方を教え... β 15/5/13(水) 5:52 質問[未読]
【77071】Re:0.1秒単位でのマクロの実行の仕方を教え... γ 15/5/13(水) 7:15 発言[未読]
【77072】Re:0.1秒単位でのマクロの実行の仕方を教え... β 15/5/13(水) 7:44 発言[未読]

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