ALL Program VBA

【VBA】Sleepを使用しVBA実行を任意の時間停止させる方法【簡単】

VBAでSleepを使用する方法を丁寧に説明
EXCEL VBA動作時任意の時間のあいだ処理を止めたいです!
 

こんな悩みに回答します。

 

こんな悩みの人向け

 

こんな悩みの人向け

  • VBA動作時任意の時間 処理を止めたい人
.

VBAの速度があまりにも早すぎて、処理が追い付かなく、VBA側がエラーになることがありますよね。

例えば、VBAで別EXCELを開いて何かを処理をする…といった場合、
別EXCELファイルを開いてる途中で 次のVBAコードが実行され、
VBAがエラーでデバックモードになるという。。。

そういったときに、解決する方法は 複数あるのですが、
おそらく一番簡単な解決方法が、本記事で紹介する「Sleep機能」を利用することです。

Sleep機能は、いろいろと使い勝手が良いので、このタイミングで知っておくと良いと思います!
Nakamura

 

 

ということで、説明いたします。

 

 

コードの紹介

VBA動作時に任意の時間止めるのは、すごく簡単にできます。

具体的には、「Sleep」というコードを使います。

コードは以下の通り。

 
Sleepコードは、英語の意味のまんまですので、簡単に感じますよね!
Nakamura
 

ここでの ワンポイント アドバイスですが、「Sleep 秒数の秒数についての考え方です。

秒数の考え方は以下の通りになりますので、併せて確認しておきましょう。

ポイント

1000 が 1秒 となることを覚えておくだけでOKです!

  • Sleep 1000   → 1秒 止める
  • Sleep 10000 → 10秒 止める
  • Sleep 60000 → 60秒 止める

ただし、1点だけ注意点がありまして、Sleep機能を利用するためには 1つだけ準備をしてあげる必要があります。

次で説明しますね。

簡単です。ご安心ください!
Nakamura
 

Sleep機能を使うための準備(★重要)

Sleepを使用するためには、以下のコードを Sub~EndSub手前に挿入してあげる必要があります。

 
Sleep機能は、PC本体のAPI機能を利用しているため コチラの準備が必要となります。
まぁ正直、この辺は 深く理解せず、このコードを挿入すればSleep使えるんだ!ラッキー!程度の理解で全然問題ありません。
Nakamura
 

具体的に、どのように挿入すれば良いのか分からない人 向けに、
以下にヒナ型のコードを紹介しておきますね。

Sub~EndSubの手前に挿入するというのは、こういう意味となります!
ぜひぜひSleepでVBA動作の安定性を向上させ、VBAライフを充実させてください!
Nakamura

 

 

終わりに

Sleepは、VBAにおいて 結構頻繁に利用するAPI機能の1つとなります。

使い方も簡単で、尚且つ 使い勝手も良く、僕は結構な頻度で利用したりします。

人によっては、より安定性を増させるために 違う手法を取る場合もありますが、
最初はSleepから初めて 問題ないと思います。
動作が遅くなっても、VBA実行が止まらない方が優先順位は高いと思いますので。
Nakamura

はい!ということで、今回はこの辺で終わりとなります。

今後も、VBAに関する有用なコードがありましたら、
紹介していく予定となりますので、今後も NakamuraBlogをどうぞよろしくお願いいたします。

今回はここまでとなります。

ありがとうございました。




-ALL, Program, VBA
-, ,