プロが教えるわが家の防犯対策術!

ご回答様

いつもお世話になっております。
表題の件、VBAの勉強をしておりますが下記ソースをよく見ます。

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


上記ソースはどういう意味でしょうか。

何卒宜しくお願い致します。

A 回答 (2件)

使い方は先の回答のリンク先に例がありますね。


Sleep 3000
で3000ミリ秒(すなわち3秒)止まります。

ただしExcelでVBAを使う場合はSleepで処理を止めると画面も止まるのでお勧めしません。GUIに影響を与えないような処理なら良いですけど。
# スレッドAPIと併用してサブスレッドの処理とか
メインスレッドで時間待ちをするなら、DoEventを含むループを組んで時間経過を待つのが妥当です。
    • good
    • 0

これはWindows APIの参照を宣言しています。


Sleep関数はVBAに標準で用意されていないのでWindowsの機能を呼び出します。WindowsのSleep関数はkerel32.dllという共有ライブラリで定義されているので、質問のように宣言することによってSleep関数を使えるようになります。なお括弧内のByVal dwMilliseconds As Longは、Long型(64bit整数型)のdwMillisecondsを値渡ししてSleep関数を呼び出すことを示します。

参考: VBA【Sleep関数(API)】指定した時間分処理を止める
# https://e-vba.com/sleep/
    • good
    • 0
この回答へのお礼

お世話になっております。
回答頂きありがとうございます。
APIですがSleep3000等々のようにプログラムを一時期的に止めたい場合に
使用するのでしょうか。
すみません、初歩的な質問で申し訳ございませんが何卒宜しくお願い致します。

お礼日時:2020/12/13 12:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A