サイトについて      連絡先   検索

VBA DateDiff 関数

はじめに

Excel VBA マクロの DateDiff 関数を紹介します。

DateDiff 関数は、二つの日時の間隔を返します。

指定の日時から経過した日や時間を取得したいときに使用します。

  • 目次
    • 構文
    • 解説
    • 使用例

構文

DateDiff(単位, 開始日時, 終了日時)
開始日時から終了日時までの期間を指定した単位で取得します。

引数「単位」期間の単位を表す文字を指定します。
引数「開始日時」期間の開始となる日時を指定します。
引数「終了日時」期間の終了となる日時を指定します。
戻り値の型数値型 (Integer)

引数「単位」

単位の文字 説明
yyyy
m
d
h
n
s

解説

単位が d (日)のとき、開始日時が今日で、終了日時が明日なら 1 を返します。

単位が d (日)のとき、開始日時が明日で、終了日時が今日なら -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
  • 目次
    • 構文
    • 解説
    • 使用例