【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の記述ではどちらか片方が赤文字になります。エラーではないので気にしないでください。
スポンサーリンク