- Home »
- Excel講座の総目次 »
- Excel VBA入門:目次 »
- Excel VBA関数:目次 »
- 日付の関数
- このページではExcel VBAの時刻・時間に関する関数をまとめて説明しています。
- 時刻の間隔などの計算はDateAdd関数やDateDiff関数が使えます。
- パソコン(システム)の時刻が返されます。
- 使用例
- Sub test1()
Range("A1").Value = Time
End Sub
- A1セルにはPCの時刻が「10:20:40」(10時20分40秒)のように返ります。
- パソコン(システム)の日付と時刻が返されます。
- 使用例
- Sub test2()
Range("A1").Value = Now
End Sub
- A1セルにはPCの日付と時刻が「2008/11/2 14:44:40」(2008年11月2日 10時20分40秒)のように返ります。
- パソコン(システム)の時刻の時数が返されます。
- 使用例1
- Sub test3-1()
Range("A1").Value = Hour(Time)
End Sub
- A1セルにはPCの時刻が10時20分40秒のとき、時数の「10」が返ります。
- 使用例2
- Sub test3-2()
Range("A2").Value = Hour("14時30分")
End Sub
- A2セルには時数の「14」が返ります。
- パソコン(システム)の時刻の分数が返されます。
- 使用例1
- Sub test4-1()
Range("A1").Value = Minute(Now)
End Sub
- A1セルにはPCの時刻が10時20分40秒のとき、分数の「20」が返ります。
使用例2
- Sub test4-2()
Range("A2").Value = Minute("14時30分")
End Sub
- A2セルには分数の「30」が返ります。
- パソコン(システム)の時刻の秒数が返されます。
- 使用例1
- Sub test5-1()
Range("A1").Value = Second(Now)
End Sub
- A1セルにはPCの時刻が10時20分40秒のとき、秒数の「40」が返ります。
使用例2
- Sub test5-2()
Range("A2").Value = Second("14時30分15秒")
End Sub
- A2セルには秒数の「15」が返ります。
- 時刻を表す値を返します
- 構文:TimeValue(time)
- time:0:00:00 (12:00:00 AM)〜23:59:59(11:59:59 PM)の範囲の時刻を表す文字列式を指定します。
- 使用例
- Sub test6()
Range("B1").Value = TimeValue("10:20:40")
Range("B2").Value = TimeValue("10:20:40 PM")
Range("B1:B2").NumberFormatLocal = "h:mm:ss"
End Sub
- B1セルには時刻「10:20:40」を返します。セルの値はシリアル値です。
B2セルには時刻「22:20:40」を返します。セルの値はシリアル値です。
- 引数に指定した時、分、秒に対応する値を返します。
- 構文:TimeSerial(hour, minute, second)
- hour:必ず指定します。時を表す 0 (12:00 AM) 〜 23 (11:00 PM) の範囲の数値または数式を指定します。
- minute:必ず指定します。分を表す 0 〜 59 の範囲の数値または任意の数式を指定します。
- second:必ず指定します。秒を表す 0 〜 59 の範囲の数値または任意の数式を指定します。
- 使用例
- Sub test7()
Range("C1").Value = TimeSerial(10, 20, 40)
End Sub
- C1セルには時刻「10:20:40」のシリアル値が返されます。
- 指定した間隔を加算した時刻の値を返します。
時間の[分]単位は「n」となりますので注意してください。
- 構文:DateAdd(interval, number, date)
- interval:必ず指定します。追加する時間間隔を表す文字列式を指定します。
-
yyyy |
年 |
q |
四半期 |
m |
月 |
y |
年間通算日 |
d |
日 |
w |
週日 |
ww |
週 |
h |
時 |
n |
分 |
s |
秒 |
- number:必ず指定します。追加する時間間隔の数を表す数式を指定します。
未来の日時を取得するには正の数を指定します。過去の日時を取得するには負の数を指定します。
- date:必ず指定します。時間間隔を追加する日付を表すバリアント型 (内部処理形式 Date の Variant) の値またはリテラル文字列を指定します。
- 使用例
- Sub test8()
Range("C1").Value = DateAdd("h", 1, "10:15:30")
Range("C2").Value = DateAdd("n", 10, "10:15:30")
Range("C3").Value = DateAdd("s", 15, "10:15:30")
End Sub
- C1セル:11:15:30 が返ります。
- 10:15:30に1時間を加えるので11:15:30となります。
- C2セル:10:25:30 が返ります。
- 10:15:30に10分を加えるので10:25:30となります。
- C3セル:10:15:45 が返ります。
- 10:15:30に15秒を加えるので10:15:45となります。
- 2つの指定した日付の時間間隔の値を返します。
時間の[分]単位は「n」となりますので注意してください。
- 構文:DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
- interval:必ず指定します。時間単位を表す文字列式を指定します。
日数を求めるには、年間通算日 ("y") か、日 ("d") のいずれかを指定します。
- 名前付き引数
yyyy |
年 |
q |
四半期 |
m |
月 |
y |
年間通算日 |
d |
日 |
w |
週日 |
ww |
週 |
h |
時 |
n |
分 |
s |
秒 |
- date1, date2:必ず指定します。間隔を計算する 2 つの日付/時刻を指定します。
- 使用例
- Sub test9()
Range("D1").Value = DateDiff("h", "9:10:20",
"17:30:35")
Range("D2").Value = DateDiff("n", "9:10:20",
"17:30:35")
Range("D3").Value = DateDiff("s", "9:10:20",
"17:30:35")
End Sub
- D1セル:8が返ります。
- "9:10:20", "17:30:35"の時間間隔は8時間なので8が返ります。
- D2セル:500が返ります。
- "9:10:20", "17:30:35"の時間間隔は8時間20分なので8*60+20=500が返ります。
- D3セル:30015が返ります。
- "9:10:20", "17:30:35"の時間間隔は8時間20分15秒なので8*60*60+20*60+15=30015が返ります。
スポンサードリンク
よねさんのWordとExcelの小部屋|Excel(エクセル) VBA関数:目次|時刻(時間)の関数
PageViewCounter

Since2006/2/27