プログラムを作成するときに、プログラムが遅延または一時停止がよく発生します。
forループを使用して、空のステートメントを特定の回数で実行し、遅延す効果をもたらします。
このように
for i=0 to 10000
next
forループを使用する前提条件は、各ステートメントの実行時間を知ること、これより、時間がかかります。
では、excel vbaで遅延または一時停止がどうやって実行しますか?
上記の機能を実現するために、vbaにはどのようなツールが配置されましたか?
次には説明します。
目次
api関数とsleep関数を呼び出す
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) '必須
Sub s()
Sleep 3000 '実行を中断する時間(ミリ秒)
Cells(1, 1) = 1
End Sub
api関数とtimeGetTime関数を呼び出す
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Sub a()
Dim t
t = timeGetTime 'システムの開始時刻をメモする(ミリ秒)
While timeGetTime < t + 3000
DoEvents '制御権を渡す
Wend
Cells(1, 1) = 1
End Sub
vbaにあるtimer関数を使用する
Sub a()
t = Timer '開始時刻をメモする(ミリ秒)
While Timer < t + 3
DoEvents '制御権を渡す
Wend
Cells(1, 1) = 1
End Sub
applicationのwaitメソッドを使用する
Sub a()
Application.Wait (Now + TimeValue("00:00:03")) '3秒後にプログラムを続行する
Cells(1, 1) = 1
End Sub
vbaにあるnow関数を使用する
Sub a()
t = Now
While Now < (t + TimeValue("00:00:03")) '3秒後にプログラムを続行する
DoEvents
Wend
Cells(1, 1) = 1
End Sub
コメントを残す