【Sleep関数(API)】指定した時間分処理を止める

スポンサードリンク

【Sleep関数(API)】指定した時間分処理を止める

どうもtakaです、VBAで処理を一定時間止めたいと感じたときはありませんか?基本的にVBAで処理を一時停止することはできません、ですがAPIを使用すればそれが可能になります(^^♪

今回は指定した時間分処理を止める【Sleep関数(API)】をご紹介していきます。

Sleep関数は今までご紹介してきた関数とは違いAPI(Application Programming Interface)というExcelなどのアプリケーションを介してOSなどを操作することができるインターフェイスになります。

APIというと敷居が高いイメージがあるかもしれませんが、しっかりと使う事によってVBA関数ではできないことが可能になったりするので非常に便利です(。-`ω-)

今回はそんなAPIを使用してWindowsを操作してプログラムを待機することができる【Sleep関数】をご紹介していきます。

Sleep関数の書式

まずVBAでAPIを使用する場合APIを使用することをモジュール内で宣言しなければいけません。
※APIの宣言はモジュールの一番上でしなければいけません

下記の画像のように普段プログラムを記述する部分の一番上に挿入することによって効果を発揮します。

宣言しなかった場合はエラーになりますのでお忘れなく( ;∀;)私は結構忘れます(笑)

続いてSleep関数自体の書式です。

【指定する秒数】には1/1000秒を指定してください。5秒停止させたい場合は【Sleep 5000】と記述し、3秒の場合は【Sleep 3000】のようにしてください。

間違えて【Sleep 1】のように記述しても全く停止したのかわかりません(笑)

Sleep関数のサンプルコード

メッセージボックスのOKを押した3秒後に【3秒経過しました】というメッセージボックスを表示させるプログラムです。

注意点

Microsoftのヘルプに下記のような記述がありました。

32 ビット版の Office 2010 プログラムで VBA マクロを編集すると、”コンパイル エラー: 64 ビット版のシステムで使用するには、このプロジェクトのコードを更新する必要があります” というエラー メッセージが表示される

Microsoftヘルプより引用

Office2010を使用している場合はこのようなエラーが発生する場合があるので、その場合は【API宣言】の部分を下記のように書き換えることで回避できるとのことです。

ブログランキング


【E-VBA】はブログランキングに登録しています(∩´∀`)∩


にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

人気ブログランキングへ

ファイルやコードの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

あることがキッカケでVBAを独学で勉強している、非IT企業の会社員。
今はVBAで出来ることを模索しながら別の開発言語の取得、基本情報技術者試験合格が目標