Vba で wait コマンドと sleep コマンドを使用するにはどうすればよいですか?

VBAの待機コマンド

VBA では、WAIT コマンド (メソッド) を使用すると、Excel で実行しているすべてのアクティビティを特定の時間、または特定の時間まで待機することができます。簡単に言えば、VBA を数秒、数分、さらには数時間、または一定の時間まで待機させることができます。引数を指定する必要があります。

VBAの使用手順 待機

  1. まず、キーワード「Application」を使用し、ピリオド (.) を入力して、プロパティとメソッドのリストを取得します。
  2. その後、「待機」方法を選択またはタップします。
  3. 次に、「Time」引数を指定して、VBA に待機時間を指示します。
  4. 最後に、コードを実行して Excel 内のすべてのアクティビティをキューに入れます。
vba-wait コマンド

このコードでは、 NOWTIMEVALUE ( VBA Functions ) を使用して、コードの実行時から 10 秒待つように VBA に指示しました。したがって、10 秒が経過すると、IF ステートメントが条件をテストして実行され、「Wait Over」というメッセージが表示されたメッセージ ボックスが表示されます。

 Sub vba_wait_example() If Application.Wait(Now + TimeValue("00:00:10")) = True Then MsgBox "Wait Over" End If End Sub

Wait メソッドを使用して、特定の時刻まで Excel がすべてのアクティビティを待機するようにすることもできます。次のコードは午後 1 時まで待機します。つまり、私のシステムでは現在 12 時 52 分なので、この行コードは次の 8 分間待機させます。

 Application.Wait "13:00:00"

注: wait メソッドでは、少なくとも 1 秒しか待つことができません。

VBAスリープ

スリープは、マクロの実行時に一時停止したり、遅延を追加したりするのに役立つ Windows 関数 ( Windows DLL ファイルの下にあります。コード ステートメントを使用してこの関数をインポートする必要があります)。この機能では時間をミリ秒単位で指定できますが、すべてを一時停止したスリープ機能を停止することはできません。

VBAでスリープ機能を使う

  1. まず、コードステートメントを使用して、「 kernel32 ライブラリ」からスリープ関数をインポートする必要があります。
  2. 64 ビット Excel を使用している場合は、必ず「PtrSafe」ステートメントを追加する必要があります。
  3. 次に、コードで sleep 関数を呼び出す必要があります。
  4. 最後に、コードを遅延させる時間 (ミリ秒) を指定します。
 If VBA7 Then ' For 64-Bit versions of Excel Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Else 'For 32-Bit versions of Excel Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) End If Sub vba_sleep() Sleep (10000) 'add code here MsgBox "Finished" End Sub

上記のコードでは 10,000 ミリ秒があり、これは 10 秒に相当します。このコードを実行すると、コードが 10 秒遅れてからメッセージ ボックスが表示されます。

注:スリープ機能を使用すると、設定した時間だけ Excel のすべての作業が停止し、中断することもできません。 32 ビット バージョンと 64 ビット バージョンの互換性に関する Microsoft のこのリンクを必ず確認してください。

VBAとは

関連するチュートリアル

コメントを追加する

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