【Excel VBA】日付を指定するDateSerial関数

エクセルでは、日付を操作する関数やコードはよく使います。

この記事では、VBAでDateSerialを使った日付の操作方法について紹介します。

DateSerial関数の構文

DateSerial(year,month,day)

1つ目の引数は、年を表す数値(0~9999)を整数で指定します。

2つ目の引数は、月を表す数値(1~12)を整数で指定します。

3つ目の引数は、日を表す数値(1~31)を整数で指定します。

DateSerialの引数は省略できません。

DateSerial関数の具体例

それでは、DateSerial関数に数値を入れて次のコード実行してみます。

Sub DateSerial関数具体例()
 Cells(2, 2) = DateSerial(2023, 7, 1)
 Cells(3, 2) = DateSerial(2023, 7, 32)
 Cells(4, 2) = DateSerial(2023, 7, 0)
 Cells(5, 2) = DateSerial(2023, 7, -1)
 Cells(6, 2) = DateSerial(2023, 13, 1)
 Cells(7, 2) = DateSerial(23, 7, 1)
 Cells(8, 2) = DateSerial(3, 7, 1)
End Sub

■実行結果

構文で数値の範囲を指定していますが、超えた範囲も入力できます。計算されて前日になったり翌月になったりします。

DateSerial関数の実践例

例えば給料の支払いで、月末締めの翌月25日払いなのでその日付を取得したい、毎月○日を基準日として日付を取得したい場合などがあります。

Date関数、Year関数、Month関数を使って次のコードで取得することができます。

Sub DateSerial関数実践例()
 '当月1日を取得
 Cells(11, 2) = DateSerial(Year(Date), Month(Date), 1)
 '月末日を取得
 Cells(12, 2) = DateSerial(Year(Date), Month(Date) + 1, 0)
 '翌月25日
 Cells(13, 2) = DateSerial(Year(Date), Month(Date) + 1, 25)
End Sub

■実行結果

2023年8月1日~8月31日に実行した場合、上記の結果が得られます。

コメント

タイトルとURLをコピーしました