« Excel VBAで時刻のミリ秒を得る。 | トップページ | ショートカットの「実行時の大きさ」を「非表示」にする。 »

2007年11月 2日 (金)

Excel VBAでミリ秒の時間を待つ。

100ミリ秒待つのに、Excelマクロを使えば、

Application.Wait [NOW()+"0:00:00.1"]

VBAだけで、

秒の誤差があってよければ、
Application.Wait CDbl(Now) + (Timer - Fix(Timer)) / 24 / 60 / 60 + CDbl(1) / 24 / 60 / 60 / 10

更に、秒の誤差がでないようにするには、

Do
  dt = Now
  tm = Timer
Loop While dt <> Now
Application.Wait CDbl(dt) + (tm - Fix(tm)) / 24 / 60 / 60 + CDbl(1) / 24 / 60 / 60 / 10

リトライは、例えば、Now=1秒9とTimer=2秒1が合成されて、1秒1となるのを防ぎます。

以下は要注意です。

Application.Wait(Date型) では、ミリ秒が秒に丸められます。

Application.Wait(Double型) では、ミリ秒が有効になります。

« Excel VBAで時刻のミリ秒を得る。 | トップページ | ショートカットの「実行時の大きさ」を「非表示」にする。 »