VBAで時刻データを扱っていると、次のようなことはありませんか?
- 現在時刻の秒を取得したい
- 時・分・秒を分解したい
- 処理時間を計測したい
このような場合は、Second関数を使うことで解決できます。
時刻データから「秒(0〜59)」を取得できる関数です。
この記事では、Second関数の基本から実務での活用方法まで分かりやすく解説します。
この記事でできること
- 時刻から秒を取得できる
- 時刻データを分解できる
- 実務で使える時間処理が分かる
基本:Second関数の使い方
基本構文はこちらです。
Second(時刻)
例:
MsgBox Second("10:25:30")
→ 30
Second関数の特徴
- 時刻から「秒」を取得
- 0〜59の数値を返す
- Date型・文字列どちらでも使用可能
基本例
Dim s As Integer
s = Second(Time)
MsgBox s
→ 現在の秒が取得されます
セルの値から秒を取得する
Dim s As Integer
s = Second(Range("A1").Value)
MsgBox s
A1の時刻から秒を取得できます。
Hour・Minuteとの組み合わせ
時・分・秒を分解できます。
Dim h As Integer
Dim m As Integer
Dim s As Integer
h = Hour(Time)
m = Minute(Time)
s = Second(Time)
MsgBox h & ":" & m & ":" & s
処理時間を計測する
開始時間と終了時間を取得できます。
Dim startTime As Date
startTime = Now
MsgBox "開始秒:" & Second(startTime)
条件分岐で使う
If Second(Time) Mod 2 = 0 Then
MsgBox "偶数秒です"
Else
MsgBox "奇数秒です"
End If
実務での活用例
- ログ記録
- 処理時間管理
- リアルタイム処理
- 時間分析
ログ処理などでよく使われます。
注意点
① 日付でも使用可能
Second(Now)
→ 日付+時刻から秒を取得
② 無効な値はエラーになる
時刻として認識できる必要があります。
安全な書き方(おすすめ)
Dim val As Variant
val = Range("A1").Value
If IsDate(val) Then
MsgBox Second(val)
Else
MsgBox "時刻ではありません"
End If
よくあるエラーと対処法
① 型が一致しません
時刻として認識できない可能性があります。
② 期待した秒にならない
セルの表示形式ではなく実際の値を確認してください。
③ コードは正しいのにエラーになる
コピー時に全角文字や特殊文字が混ざることがあります。
その場合は該当行を手入力し直すと解決することがあります。
まとめ
- Secondは「秒」を取得する関数
- 時刻データの分解に使用
- Hour・Minuteとセットで使う
- ログや時間管理で活躍
Second関数を使いこなせるようになると、時間データ処理の幅が大きく広がります。
実務でも便利なので、ぜひ覚えておきましょう。

コメント