非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

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

スポンサーリンク

 - Excel, VBA