日付時刻 実行中のマクロを指定の時刻まで停止WaitメソッドTimeValue関数
※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。
※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。
Sub TimeWait(lngSecond As Long) '************************************ '指定した秒数の間マクロを止める '************************************ '引数 lngSecond には秒数を! Dim newHour As String Dim newMinute As String Dim newSecond As String Dim waitTime As Variant newHour = Hour(Now()) newMinute = Minute(Now()) newSecond = Second(Now()) + lngSecond waitTime = TimeSerial(newHour, newMinute, newSecond) Application.Wait waitTime End Sub Private Sub test() Debug.Print Now() Call TimeWait(10) Debug.Print Now() '2010/01/09 17:22:16 '2010/01/09 17:22:26 End Sub |
Wait メソッド実行中のマクロを指定の時刻まで停止します。指定の時間に達した場合、True を返します。重要 Wait メソッドは、Excel のすべての動作を停止させますが、印刷や再計算などのバックグラウンド処理は続行されます。
|
Wait メソッドの使用例次の使用例は、実行中のマクロを当日の午後 6 時 23 分まで停止します。 |
Application.Wait "18:23:00" |
次の使用例は、実行中のマクロを約 10 秒間停止します。 |
newHour = Hour(Now()) newMinute = Minute(Now()) newSecond = Second(Now()) + 10 waitTime = TimeSerial(newHour, newMinute, newSecond) Application.Wait waitTime |
次の使用例は、10 秒を過ぎるとメッセージを表示します。 |
If Application.Wait(Now + TimeValue("0:00:10")) Then MsgBox "時間が過ぎました。" End If |
TimeValue 関数時刻を表すバリアント型 (内部処理形式 Date の Variant) の値を返します。
|
TimeValue 関数の使用例次の例は、TimeValue 関数を使って、文字列を時刻に変換します。時刻リテラルを使って、バリアント型 (Variant) や日付型 (Date) の変数に時刻を直接代入することもできます。たとえば、MyTime = #4:35:17 PM# のように指定します。 |
Dim MyTime MyTime = TimeValue("4:35:17 PM") ' 時刻を返します。 |