サイトについて      連絡先   検索

VBA DateSerial 関数

はじめに

Excel VBA の DateSerial 関数を紹介します。

DateSerial 関数は、指定した年月日の日付を返します。

変数に入れた数値から日付を取得したいときに使用します。

構文

DateSerial(年, 月, 日)

名前 説明
引数「年」年を指定します。
引数「月」月を指定します。
引数「日」日を指定します。
戻り値日付型 (Date)

解説

日付型の範囲は西暦100年1月1日 ~ 西暦9999年12月31日です。これを超えるような日付を返すときはエラーが発生します。

年を二桁で指定すると 0 ~ 29 は 2000 ~ 2029 年、30 ~ 99 は 1930 ~ 1999 年になります。

月には 1 ~ 12 の他に 0 以下や 13 以上も指定できます。13 は翌年の 1 月になります。

日には 1 ~ 31 の他に 0 以下や 32 以上も指定できます。1 月の 32 日は翌月の 1 日になります。うるう年や月末の日数は考慮されます。

使用例


Dim d As Date

d = DateSerial(2000, 1, 2)
Debug.Print (d) ' 2000/01/02

d = DateSerial(0, 1, 1)
Debug.Print (d) ' 2000/01/01

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

日付を指定するのに変数の値を使えるようになります。


Dim d As Date

Dim yyyy As Integer
Dim mm As Integer
Dim dd As Integer
yyyy = 2000
mm = 1
dd = 31

d = DateSerial(yyyy, mm, dd)
Debug.Print (d) ' 2000/01/31

関連ページ