DateAdd関数

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

目次

スポンサー リンク

DateAdd関数とは

DateAdd関数は、指定された時間間隔を加算した日付をバリアント型 (内部処理形式 String の Variant) の値で返します。

構文DateAdd(interval, number, date)
引数省略説明
interval ×追加する時間間隔を表す文字列式を指定します。
number ×追加する時間間隔の数を表す数式を指定します。将来の日時を取得するには正の数を指定します。過去の日時を取得するには負の数を指定します。
date ×時間間隔を追加する日付を表すバリアント型 (内部処理形式 Date の Variant) の値またはリテラル文字列を指定します。

引数interval

設定値説明
yyyy yyyy
q 四半期
m
y 年間通算日
d
w 週日
ww
h
n
s

DateAdd 関数を使うと、ある日付に対して指定した時間間隔を、加えたり引いたりすることができます。たとえば、現在から 30 日後の日付や、現在から 45 分後の時刻などを計算できます。名前付き引数 date に日数を加えるには、年間通算日 ("y")、日 ("d")、週日 ("w") のいずれかを指定します。DateAdd 関数が無効な日付を返すことはありません。次の例では、31-Jan-95 の日付に 1 か月を加えています。

DateAdd("m", 1, "31-Jan-95")
この場合、31-Feb-95 ではなく、28-Feb-95 が返されます。名前付き引数 date が 31-Jan-96 であれば、1996 年は閏年なので 29-Feb-96 が返されます。計算の結果、日付が西暦 100 年以前になる場合 (名前付き引数 date に指定した年よりも大きな年を引いた場合) は、エラーが発生します。名前付き引数 number に指定した値が長整数型 (Long) でない場合は、最も近い整数値に丸められてから評価されます。

DateAdd の戻り値の書式は、引数 date に指定する日付の書式ではなく、[コントロール パネル] の設定によって決まります。
Calendar プロパティの設定がグレゴリオ暦の場合、引数 date にはグレゴリオ暦で表される日付を指定する必要があります。Calendar プロパティの設定が回教暦の場合、引数 date には回教暦で表される日付を指定する必要があります。月の名前として数値以外の名称が使われている場合、この名前は現在の Calendar プロパティの設定と一致する必要があります。月の名前と Calendar プロパティの設定を競合しないようにするには、短い日付形式の数値を使って日付を表すようにします。

DateAdd関数のサンプルコード

次の例は、ユーザーに日付とそれに加算する月数の入力を求めた後、DateAdd 関数を使って加算後の日付を表示します。


Sub sample()

 Dim FirstDate As Date    ' 変数を宣言します。
 Dim IntervalType As String
 Dim Number As Integer
 Dim Msg
 IntervalType = "m"        ' "m" によって追加する時間間隔として、月を指定します。
 FirstDate = InputBox("日付を入力してください。")
 Number = InputBox("加算する月数を入力してください。")
 Msg = "新しい日付: " & DateAdd(IntervalType, Number, FirstDate)
 MsgBox Msg

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のInternetExplorer操作入門

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

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

エクセルVBAのステートメント

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

エクセルVBAのオブジェクト

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

エクセルVBAのプロパティ

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

エクセルVBAのメソッド

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

エクセルVBAのイベント

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