【ExcelVBA・マクロ】Second関数の使い方|時刻から「秒」を取得する方法【コピペOK】

Second関数の使い方 ExcelVBA

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関数を使いこなせるようになると、時間データ処理の幅が大きく広がります。
実務でも便利なので、ぜひ覚えておきましょう。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

タイトルとURLをコピーしました