DateSerial関数

DateSerial関数は、VBA関数の中で日付・時刻関数に分類される関数です。

目次

スポンサー リンク

DateSerial関数とは

DateSerial関数は、引数に指定した年、月、日に対応するバリアント型 (内部処理形式 Date の Variant) の値を返す関数です。

構文DateSerial(year, month, day)
引数省略説明
year ×この名前付き引数は整数型 (Integer) のデータ形式で指定します。年を表す 100 ~ 9999 の範囲の数値または数式を指定します。
month ×この名前付き引数は整数型 (Integer) のデータ形式で指定します。月を表す 1 ~ 12 の範囲の数値または任意の数式を指定します。
day ×この名前付き引数は整数型 (Integer) のデータ形式で指定します。日を表す 1 ~ 31 の範囲の数値または任意の数式を指定します。

DateSerial 関数の各引数に指定する数値は、それぞれ正しい範囲内になければなりません。月については 1 ~ 12、日については 1 ~ 31 です。また、ある日付からの相対的な年、月、日を表す数式を引数に指定することもできます。次の例では、直接日付を指定するのではなく、数式を用いて相対的に指定しています。1990 年の 10 年前 (1990 - 10) の 8 月から 2 か月前 (8 - 2) の最初の日の前日 (1 - 1) の日付、1980 年 5 月 31 日を返します。

DateSerial(1990 - 10, 8 - 2, 1 - 1)
Windows 98 または Windows 2000 では、名前付き引数 year に 0 ~ 99 の範囲の数値を指定すると、既定の設定では 0 ~ 29 の場合は 2000 ~ 2029、30 ~ 99 の場合は 1939 ~ 1999 と読み替えられます。これ以外の数値を名前付き引数 year に指定する場合は、4 桁の数値 (たとえば 1800) を指定してください。

以前のバージョンの Windows では、名前付き引数 year に 0 ~ 99 の範囲の数値を指定すると、1900 ~ 1999 と読み替えられます。関数が正確な値を返すようにするには、4 桁の数値を使用してください。

各引数に指定する値が正しい範囲内にない場合、指定された値は引数に従って加算されます。たとえば、名前付き引数 day に 35 を指定すると、指定した年と月によって、1 か月とその月から超過する分の日数として扱われます。ただし、各引数の値が -32,768 ~ 32,767 の範囲を超える場合、エラーが発生します。3 つの引数で指定した日付が正しい日付の範囲内にない場合には、エラーが発生します。

Calendar プロパティの設定がグレゴリオ暦の場合、引数 year、month、および day にはグレゴリオ暦で表される日付を指定する必要があります。Calendar プロパティの設定が回教暦の場合、引数 year、month、および day には回教暦で表される日付を指定する必要があります。

返される日付の部分は、現在の Visual Basicカレンダーの時間の範囲で返されます。たとえば、現在のカレンダーが回教暦で、返される日付の部分が年の場合、その年の値は回教暦の年になります。また、引数 year に 0 ~ 99 の範囲の数値を指定すると、1400 ~ 1499 と読み替えられます。これ以外の数値を引数 year に指定する場合は、完全な 4 桁の数値 (たとえば 1520) を指定してください。

DateSerial関数のサンプルコード

次の例は、DateSerial 関数を使って、指定された年、月、日に対応する日付を取得します。


Sub sample()

 Dim MyDate
 ' MyDate には、1969 年 2 月 12 日の日付が代入されます。
 MyDate = DateSerial(1969, 2, 12)            ' 日付を返します。

End Sub

※ドラッグ(スワイプ)すると全体を確認できます。

実行結果

解説

日付・時刻関数一覧

関数名内容
Date現在のシステム日付を算出します。
DateAdd指定した期間を加えた値を算出します。
DateDiff指定した時間単位で、2つの日付の差を算出します。
DatePart日付の指定した部分を算出します。
DateSerial指定した年月日に対応するバリアント型の値を算出します。
DateValue日付を表すバリアント型の値を算出します。
Day指定した日付から、日を表す1~31までの値を算出します。
Hour指定した時刻から、時間を表す0~23の値を算出します。
Minute指定した時刻から、分を表す0~59の値を算出します。
Month指定した日付から、月を表す1~12までの値を算出します。
Now現在のシステム日付と時刻を算出します。
Second指定した時刻から、秒を表す0~59の値を算出します。
Time現在のシステム時刻を算出します。
Timer午前0時から経過した秒数を算出します。
TimeSerial指定した時分秒をバリアント型の値で算出します。
TimeValue時刻をバリアント型の値で取得します。
Weekday指定した日付の曜日を算出します。
Year指定した日付の年を算出します。
ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください。

VBAのIE操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE操作にも挑戦してみてください。

目次

VBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

VBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。