教えて!ExcelVBA!

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

ExcelVBAのWorksheetFunctionオブジェクトで使用するDays関数の使い方

構文

構文は以下の通りです。

WorksheetFunction.Days(終了日, 開始日)

解説

WorksheetFunctionは、ExcelVBAの組み込みオブジェクトで、Excelのワークシート関数をVBAから呼び出す際に使用します。Days関数は、2つの日付の差を求める関数です。具体的には、「終了日」と「開始日」の間に何日があるかを計算してくれます。終了日と開始日の値には、日付が入ります。この関数は、正の数または負の数を返し、日付が未来であれば正の数、過去であれば負の数が返ります。

プログラミング例

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

Sub 日付の差を計算する()
    Dim 終了日 As Date
    Dim 開始日 As Date
    Dim 日数 As Long
    ' 日付の設定
    終了日 = #12/31/2024#
    開始日 = #1/1/2024#
    ' WorksheetFunctionオブジェクトを使って日数を計算
    日数 = WorksheetFunction.Days(終了日, 開始日)
    ' メッセージボックスで結果を表示
    MsgBox "開始日から終了日までの日数は " & 日数 & " 日です。"
End Sub

上記のプログラムでは、まず2つの日付(終了日と開始日)を設定し、その日付の差を計算しています。その結果を変数日数に代入し、メッセージボックスで表示しています。例えば、2024年1月1日から2024年12月31日までの間の日数を計算すると、365日が表示されます。

まとめ

Days関数は、2つの日付の差を計算するために使用します。構文では、「終了日」と「開始日」を指定し、その間の日数を返します。日付が未来であれば正の数、過去であれば負の数を返します。