構文
DateSerial(Year,Month,Day)
Year ・・・年を表す数値(Long型) 必須項目 数値範囲:100~9999
Month・・・月を表す数値(Long型) 必須項目 数値範囲:1~12※0や13等も指定可能(後述参照)
Day ・・・日を表す数値(Long型) 必須項目 数値範囲:1~31※0や32等も指定可能(後述参照)
戻り値・・・日付型 (Date)
Month・・・月を表す数値(Long型) 必須項目 数値範囲:1~12※0や13等も指定可能(後述参照)
Day ・・・日を表す数値(Long型) 必須項目 数値範囲:1~31※0や32等も指定可能(後述参照)
戻り値・・・日付型 (Date)
注意点
- 対応範囲「西暦100年1月1日~9999年12月31日」※範囲外はエラーが発生
- Yearは2桁での省略記載可能です。※4桁の正式数値記載をお勧め
■2桁で省略した場合の結果
Year引数 | Year結果 |
0~29 | 2000年~2029年 |
30~99 | 1930年~1999年 |
コードサンプル
Public Sub test() '■通常の使い方 MsgBox DateSerial(2020, 1, 1) '→2020/01/01 MsgBox DateSerial(5, 10, 1) '→2005/10/01 MsgBox DateSerial(Year(Now), Month(Now) + 1, Day(Now)) '→2020/09/04なら2020/10/04が返る '■0を指定した場合 MsgBox DateSerial(2020, 0, 1) '→2019/12/01(前月同日を返す) MsgBox DateSerial(2020, 1, 0) '→2020/12/31(前月末日を返す) '■月日をオーバーして指定した場合 MsgBox DateSerial(2020, 13, 1) '→2021/01/01(翌月同日を返す) MsgBox DateSerial(2020, 10, 32) '→2020/11/01(2020/10/31の翌日を返す) '■月日をマイナス値して指定した場合 MsgBox DateSerial(2020, -1, 1) '→2020/12/01から2カ月前(0,-1で2カ月前)=2019/11/01を返す MsgBox DateSerial(2020, 10, -1) ' '→2020/10/01から2日前(0,-1で2カ月前)=2020/09/29を返す End Sub
使い方例
振込日や入金予定日など請求関連で使用するケースが多いと考えます。
翌末、翌々末等月末日を求めたい時が多いです。
下記記事も参照ください。
翌月末日や翌20日を簡単に求めたい(DateSerial関数)
コメント