エクセルでは、日付を操作する関数やコードはよく使います。
この記事では、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日に実行した場合、上記の結果が得られます。
コメント