この記事ではSecond関数の使い方と注意点について解説します。
他のよく使うVBA関数一覧はこちら。
Second関数の使い方と注意点
Second関数は、指定した時刻から「秒」の部分だけを取得する関数です。
0〜59の整数を返します。
構文
Second(時刻)
- 時刻 : 時刻を表すDate型の値、または時刻として解釈可能な文字列
- 戻り値 : 指定した時刻の「秒」(Integer型、0〜59)
使用例
時刻から「秒」を取得する
Sub Sample()
Dim MyTime As Date
MyTime = #15:45:12#
Debug.Print Second(MyTime)
End Sub
▶ 出力結果
12
Now関数の結果から秒を取得する
Sub Sample()
Debug.Print Second(Now)
End Sub
▶ 出力結果(実行が15時45分12秒の場合)
12
秒の値で処理を分ける
Sub Sample()
Dim MySecond As Integer
MySecond = Second(Time)
If MySecond < 30 Then
Debug.Print "前半の30秒"
Else
Debug.Print "後半の30秒"
End If
End Sub
▶ 出力結果(実行が15時45分45秒の場合)
後半の30秒
⚠️注意
文字列を渡す場合は、時刻として解釈できる形式にする必要がある
Sub Sample()
On Error Resume Next
Err.Clear
Debug.Print Second("15/45/12") ' 区切り文字が不適切
If Err.Number <> 0 Then Debug.Print "15/45/12 : エラー:" & Err.Description
Err.Clear
Debug.Print Second("15:45:60") ' 60秒は存在しない
If Err.Number <> 0 Then Debug.Print "15:45:60 : エラー:" & Err.Description
Err.Clear
Debug.Print Second("一秒後") ' 自然言語は無効
If Err.Number <> 0 Then Debug.Print "一秒後 : エラー:" & Err.Description
On Error GoTo 0
End Sub
▶ 出力結果(実行が15時45分45秒の場合)
15/45/12 : エラー:型が一致しません。
15:45:60 : エラー:型が一致しません。
一秒後 : エラー:型が一致しません。
上記ではエラー発生時にエラーを無視して次の処理を実行するよう記述していますが、
エラーを無視する記述が無い場合、エラー時に処理が止まってしまいます。
引数に渡す内容には注意しましょう。
戻り値に「前ゼロ」は付かない
戻り値は数値であり文字列ではないため前ゼロ(例:01)は付きません。
前ゼロを付けたい場合にはFormat関数を使用しましょう。
Sub Sample()
Debug.Print Format(Second(Now), "00")
End Sub
▶ 出力結果(実行が9秒の場合)
09
関連するVBA関数
その他のVBA関数
【Excel VBA】VBAでよく使う関数一覧&基本の使い方