-
∨目次
- 構文
- 解説
- 使用例
VBA DateDiff 関数
はじめに
Excel VBA マクロの DateDiff 関数を紹介します。
DateDiff 関数は、2 つの日時の間隔を返します。
指定の日時から経過した日や時間を取得したいときに使用します。
-
目次
- 構文
- 解説
- 使用例
構文
DateDiff(単位, 開始日時, 終了日時)
開始日時から終了日時までの期間を指定した単位で取得します。
引数「単位」 | 期間の単位を表す文字を指定します。 |
引数「開始日時」 | 期間の開始となる日時を指定します。 |
引数「終了日時」 | 期間の終了となる日時を指定します。 |
戻り値の型 | 数値型 (Integer) |
引数「単位」
単位の文字 | 説明 |
yyyy | 年 |
m | 月 |
d | 日 |
h | 時 |
n | 分 |
s | 秒 |
q | 四半期 |
y | 通年での日数 |
w | 曜日 |
ww | 週 |
スポンサーリンク
解説
引数「単位」がd(日)のとき次の結果を返します。
開始日時 | 終了日時 | 結果 |
1/1 | 1/2 | 1 |
1/1 | 1/1 | 0 |
1/2 | 1/1 | -1 |
引数「単位」がw(曜日)のとき、引数「開始日時」の曜日が次の日から、引数「終了日時」までに何回あるかを返します。
引数「単位」がww(週)のとき、日曜日が引数「開始日時」の次の日から、引数「終了日時」までに何回あるかを返します。
引数「単位」がq(四半期)のとき、引数「開始日時」の次の日から、引数「終了日時」までに1月1日、4月1日、7月1日、10月1日が何回あるかを返します。
関数を使わなくても日時 - 日時で差を求められます。
使用例
Dim d1 As Date
Dim d2 As Date
d1 = "2013/1/1"
d2 = "2013/1/8"
Debug.Print(DateDiff("d", d1, d2)) ' 7
Debug.Print(DateDiff("d", d2, d1)) ' -7
d1 = "1:2:3"
d2 = "2:2:3"
Debug.Print(DateDiff("h", d1, d2)) ' 1
Debug.Print(DateDiff("n", d1, d2)) ' 60
Debug.Print(DateDiff("s", d1, d2)) ' 3600
関数を使わないで間隔を取得する。
Dim d1 As Date
Dim d2 As Date
d1 = "2013/1/1"
d2 = "2013/1/8"
Dim 間隔 As Date
Dim d As Date
間隔 = d2 - d1 ' 7 日
d = CDate("2013/1/8") + 間隔
Debug.Print(d) ' 2013/01/15
d1 = "1:02:03"
d2 = "2:02:03"
間隔 = d2 - d1 ' 1 時間
d = CDate("1:00:00") + 間隔
Debug.Print(d) ' 2:00:00