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よりあとの日付や時刻を指定すると
計算結果は負の値になります。

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

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

日付リテラルとは

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


  • firstdayofweek
    週の始まりの曜日を指定します
    省略可能です。既定値は日曜日です。
    設定値についてはこちらをご覧ください。
  • firstweekofyear
    年度の第1週を指定します。
    省略可能です。既定値は、1月1日を含む週を第一週とします。
    設定値についてはこちらをご覧ください。

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日付や時刻として扱えるかを調べます。

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク