教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでDateDiff関数の使い方

構文

構文は以下の通りです。

DateDiff(間隔, 開始日, 終了日)

解説
DateDiff関数は、2つの指定した日付の時間間隔を表す値を返します。

引数 指定 内容
間隔 必須 計算する期間の単位を指定します。設定値を以下で紹介します。
開始日 必須 期間の開始日を指定します。
終了日 必須 期間の終了日を指定します。

間隔には以下の設定値が指定できます。

定数 内容
"yyyy" 年単位
"q" 四半期単位
"m" 月単位
"y" 日単位(年を無視した日数)
"w" 週単位
"d" 日単位
"h" 時間単位
"n" 分単位
"s" 秒単位

例えば、2023年1月1日から2024年1月1日までの日数を数えたい場合は以下の通りです。

DateDiff("d", "2023/01/01", "2024/01/01")

プログラミング例

具体的なプログラミング例を紹介します。

Sub 日数を計算()
    Dim 開始日 As Date
    Dim 終了日 As Date
    Dim 日数 As Long
    開始日 = #1/1/2023#
    終了日 = #1/1/2024#
    日数 = DateDiff("d", 開始日, 終了日)
    MsgBox "開始日から終了日までの日数は " & 日数 & " 日です。"
End Sub

上記のプログラムは、開始日と終了日を指定して、その間の日数を表示します。

サンプルプログラム

以下サイトからサンプルをダウンロードできます。

drive.google.com

まとめ

DateDiff関数を使うと、2つの日付の間の日数や月数、年数を簡単に計算することができます。他にもいろいろな間隔(例えば、月や年)で計算することができます。