ExcelVBA技 全般 E13M010

E13M010 (Excel2000~2013)
マクロの実行を指定した秒数停止する

マクロの中でちょっとしたWaitをかけたい場合があります。指定した秒数だけ停止するkWaitSec関数です。
実際の指定時間はWaitメソッドに依存するので厳密に正確ではありません
WaitメソッドはExcel動作を停止しますが印刷や再計算などのバックグラウンド処理は続行されます

'標準モジュール
Option Explicit
Option Private Module

'kWaitSec関数
'実行中のマクロを指定した秒数停止します
'引数 sec:停止する秒数
'戻り値  :指定の時間に達した場合Trueを返します
Function kWaitSec(sec As Long) As Boolean
  kWaitSec = Application.Wait(Now() + TimeSerial(0, 0, sec))
End Function

'kWaitSec関数の使用例
Sub examplet_kWaitSec()
  Dim tm!, ii&
  tm = Timer
  '実際の処理
  kWaitSec 5
  Debug.Print Timer - tm & "秒"
End Sub