教えて!ExcelVBA!

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

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

構文

構文は以下の通りです。

WorksheetFunction.Edate(開始日, 月数)

解説

WorksheetFunctionは、ExcelVBAの組み込みオブジェクトで、Excelのワークシート関数をVBAから呼び出す際に使用します。Edate関数は、指定した月数だけ前後に移動した日付を計算するのに役立ちます。例えば、3ヶ月後や6ヶ月前の日付を簡単に取得することができます。開始日は、基準となる日付を指定します。日付はシリアル値、またはDate型の変数で指定できます。月数は、開始日から追加または減少させたい月数を指定します。正の数であれば未来の日付、負の数であれば過去の日付を返します。

プログラミング例

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

Sub エデート例()
    ' 日本語変数を使った例
    Dim 開始日 As Date
    Dim 結果日 As Date
    Dim 月数 As Integer
    ' 日付を設定(例: 2024年1月1日)
    開始日 = DateValue("2024/1/1")
    ' 月数を設定
    月数 = 3
    ' Edate関数を使用して結果日を計算
    結果日 = WorksheetFunction.Edate(開始日, 月数)
    ' 結果をメッセージボックスで表示
    MsgBox "3か月後の日付は: " & 結果日
End Sub

上記のプログラムは、開始日変数に基準となる日付を設定しています。この例では、"2024/1/1"という日付を使っています。月数変数には、3という値が設定されており、3ヶ月後の日付を計算します。Edate関数を使って、開始日から月数(この例では3)だけ後の日付を計算しています。計算結果は、メッセージボックスで表示されます。

まとめ

Edate関数は、開始日から指定した月数だけ前後に移動した日付を簡単に取得できる便利な関数です。開始日と月数を指定するだけで、将来または過去の日付を瞬時に計算できるので、計画立案や契約の有効期間の計算などに非常に役立ちます。