0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VBAでSleep関数 Application.waitメソッド ではない 待つ 方法

Last updated at Posted at 2023-03-15

別解

諸々割愛
wait procedure
Sub wait(int_msec)
    tim_cur = Timer
    Do Until Timer > tim_cur + (int_msec / 1000)
    Loop
End Sub
call side
Sub sample()
    Debug.Print "Executing"
    Call wait(6000)
    Debug.Print "Done"
End Sub

で対応しました。

どう失敗したか

【Sleep関数】
 ESC連打が効かない。
 32Bit 64Bitを毎回考える。
 モジュール前にPrivate?Declare?PtrSafe?ちょっと疲弊気味。
 
【Application.Waitメソッド】
 Application.Wait Now() + 6000 / 86400000
 等やっていたがやはり ESC連打が効かない

【DoEvents関数】
 応答無しが多い

【OnTimeメソッド】
 記述の冗長

懸念

実行端末の自動時刻補正が効いた瞬間にこのプロシージャ実行していた時の検証をやってない。

雲つかむみたいな瞬間だな・・・。
Now()とかではなくTimerだから大丈夫か・・・
時刻っていつ補正されてるのか・・・。常時?

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?