見出し画像

VBA|日時関数|TimeSerial|時刻を構成要素から生成する

■ 基本構文

TimeSerial(hour, minute, second)

○ 時・分・秒を指定して 時刻(Date 型)を生成する
○ 戻り値:Date 型(時刻部分のみ)
○ 日付部分は 1899/12/30 が内部的に使われる

■ 引数説明
○ hour 時(0~23 を想定)
○ minute 分(0~59 を想定)
○ second 秒(0~59 を想定)
* 範囲外の値を指定しても 自動で累き上げ・累き下げされる

■ サンプルコード

' 役割:指定した時刻を生成する
' 理由:時刻だけを明示的に作りたい場面で使用
' 注意:日付部分は自動的に基準日になる
Dim t As Date
t = TimeSerial(9, 30, 0)
Debug.Print t   ' 09:30:00

' 役割:現在の日付 + 指定時刻を組み合わせる
' 理由:実務では「今日の○時○分」を作りたいケースが多い
' 注意:Date と TimeSerial を加算する
Dim dt As Date
dt = Date + TimeSerial(18, 0, 0)
Debug.Print dt

' 役割:範囲外の値が自動補正されることを確認する
' 理由:内部で正規化される仕様を理解するため
' 注意:意図しない補正が起きる可能性がある
Dim t2 As Date
t2 = TimeSerial(25, 70, 0)
Debug.Print t2   ' 02:10:00

■ 備考
• TimeSerial は 時刻を「作る」関数→ 現在時刻取得は Time
• 日付と組み合わせる場合は 加算する
• 範囲外の値がエラーにならず補正されるため 入力値チェックは別途必要
• 日時を構成要素で扱う場合は
○ DateSerial(日付)
○ TimeSerial(時刻)を分けて使うと安全
• 比較・計算では Date 型として扱われるため 数値比較が可能

💡 実務での典型用途
• 指定時刻での処理分岐(9:00開始など)
• 当日○時○分の日時生成
• ログ・累め処理時刻の明示指定
• スケジュール系マクロの基礎部員

いいなと思ったら応援しよう!

Parusの寺小屋 技術メモや学習の整理として書いています。 もし内容が役に立ったり、続きを読みたいと思っていただけたら、 応援として受け取らせてもらえたら嬉しいです。