VBA 日付や時間の間隔を取得するDateDiff関数

スポンサーリンク

DateDiff【デイトディフ】関数

日付や時間の間隔を計算するには、DateDiff【デイトディフ】関数を使用します。

DateDiff【デイトディフ】関数は、第二引数Date1【デイトワン】と第三引数Date2【デートツー】に指定された、2つの日付や時刻の間隔を第一引数Interval【インターバル】に指定された単位で計算して、その結果をバリアント型(内部処理形式のDateのVariant)の値で返します。

DateDiff【デイトディフ】関数の書式と引数の説明

[]内は省略可能です。
DateDiff(Interval,Date1,Date2 [, FirstDayOfWeek] [, FirstWeekOfYear])
【戻り値】バリアント型(内部処理形式のDateのVariant)

  • InterVal【インターバル】(必須)
    日付や時刻の間隔を計算する単位を下記の文字列で指定します。記述するときは「ダブルクオティーション(“)」で囲みます。

    Intervalの設定値
    設定値 説明
    yyyy
    q 四半期
    m
    y 年間通算日
    d
    w 週日
    ww
    h
    n
    s
  • Date1【デイトワン】(必須)
    間隔を計算したい日付や時刻の値をバリアント型(内部処理形式のDataのVariant)の値、または日付リテラルを使用して指定します。
  • Date2【デイトツー】(必須)
    間隔を計算したい日付や時刻の値をバリアント型(内部処理形式のDataのVariant)の値、または日付リテラルを使用して指定します。※引数Date1【デイトワン】に、引数Date2【デイトツー】よりあとの日付や時刻を指定すると計算結果は負の値になります。
  • firstdayofweek【ファーストデイオフウィーク】(省略可)
    週の始まりの曜日を指定します。既定値は日曜日です。設定値についてはこちらをご覧ください。
  • firstweekofyear【ファーストディオフイヤー】(省略可)
    年度の第1週を指定します。既定値は、1月1日を含む週を第一週とします。設定値についてはこちらをご覧ください。

設定値の「内部処理形式のDataのVariant」の指定方法

日付の場合は、DateSerial関数で指定
時刻の場合は、TimeSerial関数で指定
すれば、「内部処理形式のDataのVariant」の日付、時刻データが返ります。

日付リテラルとは

日付型データとして確実に認識させるには
日付を(月/日/年)の順番で記述して「#【シャープキゴウ】」で
囲みます。(例:#5/1/2017#)これを日付リテラルといいます。

2017年1月1日から現在までの日付間隔計算コード例

Sub 日付間隔計算()
Dim 年初 As Variant
年初 = DateSerial(2017, 1, 1)
MsgBox 年初 & "から今までの" & vbCrLf & _
"年数:" & DateDiff("yyyy", 年初, Date) & vbCrLf & _
"月数:" & DateDiff("m", 年初, Date) & vbCrLf & _
"日数:" & DateDiff("d", 年初, Date)
End Sub

実行結果


以上でDateDiff【デイトディフ】関数についての解説を終了します。ありがとうございました。

日付・時刻関数一覧表

日付や時刻の関数一覧表です。
関数名がリンクになっています。
クリックすると詳細説明ページが開きます。
関数名説明
Date現在の「日付」を取得します。
Year日付から「年」を取得します。
Month日付から「月」を取得します。
Day日付から「日」を取得します。
DatePart年・月・日を部分的に取得します。
Now現在の「日時」を取得します。
Time現在の「時刻」を取得します。
Hour時刻の「時」を取得します。
Minute時刻の「分」を取得します。
Second時刻の「秒」を取得します。
Weekday曜日を表す「整数値」を取得します。
WeekdayName曜日を表す整数値を「曜日名」に変換します。
DateSerial年・月・日を表す整数値から日付データに変換します。
TimeSerial時・分・秒を表す整数値から時刻データに変換します。
DateDiff日付や時間の間隔を計算します。
DateAdd時間を加算または減算した日付や時刻を取得します。
Timer経過した秒数を取得します。
CDateデータ型を日付型に変換します。
IsDate日付や時刻として扱えるかを調べます。
DDateValueateValue日付を表す文字列式を日付型(Date)に変換します。
TimeValueTimeValue時刻を表す文字列式を日付型(Date)に変換します。

スポンサーリンク

関連記事・広告