教えて!ExcelVBA!

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

【ExcelVBA 関数】DateSerial関数の使い方を教えて!

構文

その構文は以下の通りです。

DateSerial(年, 月, 日)

解説

DateSerial関数は、年、月、日を指定して日付を作成するための関数です。

引数 指定 内容
必須 4桁の数字を指定します。
必須 1から12の数字を指定します。
必須 1から31の数字を指定します。

使用例

DateSerial(2023, 6, 4)

使い方

具体的な使い方を紹介します。

1.特定の日付を作成する場合

DateSerial関数を使用すると、指定した年、月、日の値に基づいて、日付を作成することができます。以下のようなコードを使用すると、2023年6月4日の日付を作成することができます。

Dim dt As Date
dt = DateSerial(2023, 6, 4)

2.ループ処理で日付を生成する場合

DateSerial関数は、ループ処理の中で日付を生成する際にも役立ちます。例えば、以下のようなコードを使用すると、2023年1月1日から2023年12月31日までの日付を生成することができます。

Dim dt As Date
Dim i As Integer
For i = 1 To 12
    dt = DateSerial(2023, i, 1)
    Debug.Print dt
Next i

このように、DateSerial関数を使うことで、指定した範囲の日付を簡単に生成することができます。

プログラム例

以下に、プログラミング例を紹介します。

Sub GetLastDayOfMonth()
    Dim lastDay As Date
    lastDay = DateSerial(Year(Date), Month(Date) + 1, 1) - 1
    MsgBox "現在の月の月末日は " & lastDay & " です。"
End Sub

上記のプログラムは、VBAのサブルーチンとして実行されます。まず、lastDayという変数を宣言し、DateSerial関数を使用して月末日を計算し、lastDayに代入します。最後に、MsgBox関数を使用して結果をメッセージボックスに表示します。DateSerial(Year(Date), Month(Date) + 1, 1) - 1は、Year(Date)によって現在の年を取得し、Month(Date) + 1によって現在の月に1を足して翌月を表します。そして、1を日に指定することで翌月の1日を表し、最後に-1を引くことでその月の月末日を求めることができます。

まとめ

DateSerial関数は、指定した年、月、日の値に基づいて日付を作成する事ができます。是非活用してください。