教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA その他操作】処理を一時停止(Application.Wait)するにはどうすればいいの?教えて!

構文

構文は以下の通りです。

Application.Wait(待機時間)

解説

Application.Waitは、一定時間の待機を行うための機能です。これを利用することで、プログラムの実行を一時停止させたり、一定の時間間隔を設けたりすることができます。ApplicationはExcelアプリケーションそのものを指し示し、Waitは待機を行うメソッドです。待機時間には、ミリ秒単位で待機する時間を指定します。たとえば、1秒待機する場合は1000(ミリ秒)を指定します。

使い方

以下に、具体的な使い方を紹介します。

Sub Delay()
    Application.Wait Now + TimeValue("00:00:01")
End Sub

上記の例では、1秒間の待機を行っています。必要に応じて、待機時間を変更することができます。TimeValue関数を使って待機時間を指定し、Now関数を使って現在の時刻に待機時間を加えることで、指定した時間だけ待機することができます。

プログラミング例

以下に、実際のプログラミング例を示します。

Sub Countdown()
    Dim time As Integer
    time = InputBox("待機時間(秒)を入力してください:", "カウントダウン")
    For i = time To 1 Step -1
        Range("A1").Value = i
        Application.Wait Now + TimeValue("00:00:01")
    Next i
End Sub

上記の例では、ユーザーに待機時間を入力してもらい、その時間だけカウントダウンするプログラムを作成しています。Forループを使用して、指定された時間から1までカウントダウンし、Application.Waitを使って1秒ずつ待機しています。カウントダウンの結果はセルA1に表示されます。

まとめ

Application.Waitは、一定時間の待機を行うための機能です。プログラムの実行を一時停止させたり、一定の時間間隔を設けたりすることができます。待機時間はミリ秒単位で指定するため、必要に応じて時間をミリ秒に変換する必要があります。