構文
Hour 時のみ取得
Minute 分のみ取得
Second 秒のみ取得
指定した値から時、分、秒を分けて取得します。
戻り値は全て数値型(Integer)です。
戻り値は全て数値型(Integer)です。
Hour/Minute/Second関数のサンプルコード
Public Sub sample_Hour_Minute_Second()
Dim str As String: str = "2021/02/23 12:01:00"
'■通常の使い方
Debug.Print Hour(str) '12
Debug.Print Minute(str) '1
Debug.Print Second(str) '0
'■Format関数でも同様結果取得可能
Debug.Print Format(str, "h") '12
Debug.Print Format(str, "n") '1
Debug.Print Format(str, "s") '0
'■日付データのみの場合は"00:00:00"と時刻の初期値を取得
str = "2022/2/23"
Debug.Print Hour(str) '0
Debug.Print Minute(str) '0
Debug.Print Second(str) '0
'■時刻データと判断できれば正常に返ってくる
Debug.Print Hour("12時5分") '12
'■Date型のデータ以外はエラー
'実行時エラー13 型が一致しません
Debug.Print Hour("12じ5ふん")
Debug.Print Minute("abc")
Debug.Print Second("")
End Sub
注意点
- Format関数で同様の結果を取得できるので、必ずしも覚える必要はありません。
- 日付データ以外はエラーとなるので、日付かどうか判断する場合はisDate関数を使用します。
関連記事
日付データかどうか判断する【IsDate関数】【ExcelVBA】
時刻データかどうか判断する【IsDate関数応用】【ExcelVBA】
文字列を日付データに変換する【CDate関数】【ExcelVBA】
年/月/日から日付データを取得する【DateSerial関数】【ExcelVBA】
翌月末日や翌20日を簡単に求めたい(DateSerial関数)
西暦→和暦変換-和暦→西暦変換【DATEVALUE関数】【ExcelVBA】
指定した年・月・日をそれぞれ取得する【Year関数/Month関数/Date関数】【ExcelVBA】



コメント