更新日:、 作成日:
VBA DateSerial 関数:年月日から日付を取得する
はじめに
Excel VBA マクロの DateSerial 関数から年月日から日付を取得する方法を紹介します。
DateSerial 関数は、年月日の各値から日付を返します。
DateSerial(2000, 1, 2) のようにして、2000/01/02 の日付を取得できます。
年月日に分かれた値から日付を取得したいときに使用します。
時分秒から時間を取得するには「TimeSerial 関数」を使用します。
数値を日付に変換するには「数値を変換する」をご覧ください。
DateSerial 関数の引数と戻り値
DateSerial(年, 月, 日)
指定した年月日の日付を取得します。
引数「年」 | 年の値を指定します。 |
引数「月」 | 月の値を指定します。 |
引数「日」 | 日の値を指定します。 |
戻り値の型 | 日付型 (Date) |
解説
引数「年」が 2 桁なら 0 ~ 49 は 2000 ~ 2049 年 、50 ~ 99 は 1950 ~ 1999 年 になります。Windows のバージョンによって変わります。
引数「月」には 1 ~ 12 の他に 0 以下や 13 以上も指定できます。 13 なら翌年の 1 月になります。
引数「日」には 1 ~ 31 の他に 0 以下や 32 以上も指定できます。1 月の 32 なら翌月の 1 日になります。
日付型の範囲は 西暦100年1月1日 ~ 西暦9999年12月31日 です。これを超えるときは「エラー 5 プロシージャの呼び出し、または引数が不正です。」が発生します。
使用例
DateSerial 関数の使用例を紹介します。
年月日から日付を取得する
年月日から日付を取得します。
Dim d As Date
d = DateSerial(2000, 1, 2)
Debug.Print(d) ' 2000/01/02
d = DateSerial(0, 3, 4)
Debug.Print(d) ' 2000/03/04
d = DateSerial(99, 1, 1)
Debug.Print(d) ' 1999/01/01
d = DateSerial(2000, 0, 1) ' 月が 0
Debug.Print(d) ' 1999/12/01
d = DateSerial(2000, 13, 1) ' 月が 13
Debug.Print(d) ' 2001/01/01
d = DateSerial(2000, 1, -1) ' 日が -1
Debug.Print(d) ' 1999/12/30
d = DateSerial(2000, 1, 33) ' 日が 33
Debug.Print(d) ' 2000/02/02
年月日を取得する
「Year 関数、Month 関数、Day 関数」を使用して、年月日を取得できます。
Dim 年 As Integer
Dim 月 As Integer
Dim 日 As Integer
年 = Year(Now) ' 年
月 = Month(Now) ' 月
日 = Day(Now) ' 日
Dim d As Date
d = DateSerial(年, 月, 日)
Debug.Print(d) ' 今日の日付
スポンサーリンク