ここのページにあるサンプルは秒単位でしかできませんが、
もっと細かくミリセカンド単位できないでしょうか。
FormにCommandButtonとLabelとTimerを1こずつおいてください。
Dim lngCount As Long
Private Sub Command1_Click()
Timer1.Interval = 100 '100ミリ秒
Label1.Caption = "スタート"
Label1.Refresh
Timer1.Enabled = True
lngCount = 0
Do While lngCount < 5
DoEvents
Loop
Label1.Caption = "エンド"
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
lngCount = lngCount + 1
End Sub
Timer1.Interval と lngCount < 5 をかきかえれば
ミリ秒単位で好きな時間ループできます。
Timerコントロールは周りの処理に影響されやすいので
より正確に処理を行うにはGetTickCount,
timeGetTime等のAPIを使うのが望ましいかと思います。
ところで、Getticktimeって、マルチメディアタイマーとして使えるでしょうか?
あ、でも、どこにいれるのかな…。
まあ、今カーソルのある行を得るとか、その程度の、
正確でなくてもいいものは、Timerで十分だと思いますよ。
ただ、2個3個とTimerを置くと、重いらしい…。
ちなみに、精度は
Timer 55ms
GetTickCount 5ms〜13ms
timeGetTime ほぼ正確
です。
確か、タイマーイベントで100msとすると、
100ms毎ではなく、Timerコントロールの
プロシージャーを抜けてから、100msだったという
話を聞いたことがあります。
だとすると、かなりいい加減なタイミングになります。。。
Getticktime?
なんか、混ざってますが・・・。
GetTickCountとimeGetTimeは
単にシステム起動時間?だっけそういうのを取得するだけです。
タイマーではありませんが・・・。
マルチメディアタイマーを使用するには
timeBeginPeriodとかtimeSetEventとかのAPIを使います。