日付時刻 実行中のマクロを指定の時刻まで停止WaitメソッドTimeValue関数

VB&VBA
FROG ふろっぐ
 
  • オプション

    本文印刷

    お気に入りに追加

  • 検索

    Googlewwwjp-ia
     

    Googlewwwjp-ia
     
  • 情報

  • 関連

[VB&VBA][日付時刻 実行中のマクロを指定の時刻まで停止WaitメソッドTimeValue関数]
Option Explicit


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 のすべての動作を停止させますが、印刷や再計算などのバックグラウンド処理は続行されます。
  • 構文
  • expression.Wait(Time)
  • expression
    必ず指定します。対象となる Application オブジェクトを表すオブジェクト式を指定します。
  • Time
    必ず指定します。バリアント型 (Variant) の値を使用します。マクロを再開する時刻を Excel の日付の書式で指定します。

Wait メソッドの使用例

次の使用例は、実行中のマクロを当日の午後 6 時 23 分まで停止します。
Option Explicit

Application.Wait "18:23:00"
次の使用例は、実行中のマクロを約 10 秒間停止します。
Option Explicit

newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 10
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
次の使用例は、10 秒を過ぎるとメッセージを表示します。
Option Explicit

If Application.Wait(Now + TimeValue("0:00:10")) Then
    MsgBox "時間が過ぎました。"
End If

TimeValue 関数

時刻を表すバリアント型 (内部処理形式 Date の Variant) の値を返します。

  • 構文

  • TimeValue(time)
  • 引数

  • time
    は必ず指定します。引数 time には、通常 0:00:00 (12:00:00 AM) 〜 23:59:59 (11:59:59 PM) の範囲の時刻を表す文字列式を指定します。また、この範囲で時刻を表す任意の式を指定することもできます。引数 time に Null 値が含まれると、Null 値を返します。
  • 解説

  • 12 時間制または24 時間制のどちらを使って時刻を指定してもかまいません。たとえば、"2:24PM" と "14:24" は、両方とも有効な引数となります。
  • 引数 time が日付の値を含む場合、TimeValue 関数はその日付を戻り値に含めません。ただし、引数 time に正しくない値を指定したときには、エラーが発生します。

TimeValue 関数の使用例

次の例は、TimeValue 関数を使って、文字列を時刻に変換します。時刻リテラルを使って、バリアント型 (Variant) や日付型 (Date) の変数に時刻を直接代入することもできます。たとえば、MyTime = #4:35:17 PM# のように指定します。
Option Explicit

Dim MyTime
MyTime = TimeValue("4:35:17 PM")            ' 時刻を返します。

類似

実行中のマクロを指定の秒数(1/1000)停止Timer関数





Production Japan Import Application. Since 1998