三流君のソースコード置き場

三流プログラマーが作成したコードが置いてあります。あまり参考にならないと思いますがヨロシクお願いします。

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。
(※詳細は[三流君 三流プログラマーとは?]を見てください)


広告:


[記事一覧、バックナンバーを見る]

VBA,API,Sleep,処理待ち,テスト結果

VBA で 処理を待ちたかったので APIのSleepを使ってみた

VBA Sleepで検索すると

Excel VBA を学ぶなら moug モーグ | 即効テクニック | 指定時間だけ処理を中断する

Office TANAKA - Excel VBA Tips[CPUの使用率を抑える方法]

が見つかるので、上記サイトを参考にして、

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)を頭に定義して
値 1が1/1000秒(千分の一秒)なので、
Sleep 1000 で 1秒みたいに待つ値を指定。
※100で0.1秒、500で0.5秒など、指定する

そんな感じで、簡単に使えるみたいです。

標準モジュールに貼り付けてテストしてみた

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub test20160729_sleep()

    Debug.Print Now()
    Sleep 3000          '3秒待ちたかったので、3000指定
    Debug.Print Now()

End Sub

何かの参考となれば・・・・

下記、テスト結果の動画です
【VBA】処理を待ちたかったので APIのSleepを使ってみた 【三流君】 - YouTube
www.youtube.com




蛇足1

隣のモジュール2で使うときは、再度頭に定義するかチェックする

モジュールを追加して、

Sub test20160729_sleep2()
    Debug.Print "TEST2" & Now()
    Sleep 2000          '2秒待ちたかったので、2000指定
    Debug.Print "TEST2" & Now()
    Sleep 2000          '2秒待ちたかったので、2000指定
    Debug.Print "TEST2" & Now()
End Sub

テストしてみた。

※頭に二つ同じコードを定義してしまったら
コピペでよくあるのですが、定義を二つ書いてしまったら・・・
エラーにはならないみたいです。



番外の文句?クレーム?

^^^^^^^^^^^^^^^^^^^^^^
VBA Sleepで検索すると見つかるなんて言ってるけど、
これが、嘘なんだよなぁ・・・
何も知らない人が、検索できるわけないでしょ・・・
sleepの単語を知ってて、
答えを知っててあとからコレでググればって流れだからなぁ

一番最初は、VBA 処理待ち などで検索して、
数ある中から、答えのSleepWaitを見つける感じなんだけど、

まぁ、ここを見ているってことは※ここに検索でこれたってことは、
そんなに気にしないでもいいのかな なんてね。