VBAからWin32のSleepを呼び出す

vbaでスリープさせる方法はたくさんありますが、Win32APIのスリープを直呼びしてみたらいまいちだったけどメモ。

呼び出し方は以下の通り。

    Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)

   Private Sub wait()
       Sleep 5000 
   End Sub

上記で使えはするが、SleepだとExcelなりOutlookなりVBAの母艦の反応も悪くなるので、VBAでつかうならdoEventのほうがCPUは食うけどお勧めな気がします。

なのでお蔵入りですね。