【Excel/VBA】Sleep関数で処理を一定時間止める
Forループなどで一定時間止める場合にはSleep関数を使うと便利です。
ただ、このSleepはWindowsの関数なのでAPIの名前を宣言する必要があります。且つ64ビットと32ビットとで構文が異なるのでIF文を使ってどちらでも対応できるようにしました。ミリ秒単位で指定できます。
#If VBA7 Then
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
#Else
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds as Long)
#End If
Sub SleepTest()
For i = 1 To 20
Cells(i, 1).Value = i
'200ミリ秒停止
Sleep 200
Next
End Sub
APIの記述ではどちらか片方が赤文字になります。エラーではないので気にしないでください。
スポンサーリンク
