DateAdd 関数

DateAdd(strInterval, lngNum, varDate)

指定された時間間隔を加算した日付を返します。

引数

strInterval
追加する時間間隔の単位を表す文字列式を指定します。
設定する値については、次の「設定値」を参照してください。
lngNum
追加する時間間隔の数を表す数式を指定します。
将来の日時を取得するには正の数を指定します。過去の日時を取得するには負の数を指定します。
指定した値が長整数型 (Long) でない場合は、最も近い整数値に丸められてから評価されます。
varDate
時間間隔を追加する日付を表すバリアント型 (Variant) の値またはリテラル文字列を指定します。

解説

引数 expression が 0 のときは、偽 (False) を返します。それ以外のときは、真 (True) を返します。引数 expression が数値として扱えないときは、実行時エラーが発生します。

設定値/使用例

設定値 内容 使用例 結果
yyyy DateAdd("yyyy", 1, "2004/01/01")
DateAdd("yyyy", -1, "2004/01/01")
2005/01/01
2003/01/01
q 四半期 DateAdd("q", 1, "2004/01/01")
DateAdd("q", -1, "2004/01/01")
2004/04/01
2003/10/01
m DateAdd("m", 1, "2004/01/01")
DateAdd("m", -1, "2004/01/01")
2004/02/01
2003/12/01
y 年間通算日 DateAdd("y", 1, "2004/01/01")
DateAdd("y", -1, "2004/01/01")
2004/01/02
2003/12/31
d DateAdd("d", 1, "2004/01/01")
DateAdd("d", -1, "2004/01/01")
2004/01/02
2003/12/31
w 週日 DateAdd("w", 1, "2004/01/01") | DateAdd("w", -1, "2004/01/01") 2004/01/02
2003/12/31
ww DateAdd("ww", 1, "2004/01/01")
DateAdd("ww", -1, "2004/01/01")
2004/01/08
2003/12/25
h DateAdd("h", 1, "2004/01/01")
DateAdd("h", -1, "2004/01/01")
2004/01/01 1:00:00
003/12/31 23:00:00
n DateAdd("n", 1, "2004/01/01")
DateAdd("n", -1, "2004/01/01")
2004/01/01 1:00:00
003/12/31 23:59:00
s DateAdd("s", 1, "2004/01/01")
DateAdd("s", -1, "2004/01/01")
2004/01/01 1:00:00
003/12/31 23:59:59

次のコードは、DateAdd 関数を使って与えられた月の末日を調べる例です。

'年月日を返します。
Function GetLastDay(MyDate)
    Dim strDate
    
    '与えられた日付の翌月を求めます。
    strDate = DateAdd("m", 1, MyDate)
    
    '日にちを1日にします。
    strDate = Year(strDate) & "/" & Right("0" & Month(strDate), 2) & "/01"
    
    '一日前を求めます。
    strDate = DateAdd("d", -1, strDate)
    
    GetLastDay = strDate
End Function
	              

備考

DateAdd 関数を使うと、ある日付に対して指定した時間間隔を、加えたり引いたりすることができます。
たとえば、現在から 30 日後の日付や、現在から 45 分後の時刻などを計算できます。
引数 varDate に日数を加えるには、年間通算日 ("y")、日 ("d")、週日 ("w") のいずれかを指定します。

DateAdd 関数は、無効な日付を返しません。

strDate = DateAdd("m", 1, "2005/01/31")
上記の例では "2005/02/31" ではなく "2005/02/28" を返します。

strDate = DateAdd("m", 1, "2004/01/31")
上記の例では、2004年は閏年なので "2004/02/29" を返します。

計算の結果、日付が西暦 100 年以前になる場合は、エラーが発生します。

マイナスを指定してあげれば引くことが出来ます。
例えば1日前の場合は、-1 を加えてあげれば良いことになります。 strDate = DateAdd("d", -1, "2004/01/31")

関連

DateDiff 関数 | DatePart 関数

  • 最速攻略VBScriptサンプル大全集

    好評の「最速攻略 VBScript サンプル大全集」の改訂版です。これまでのWindows2000/XPに加え、Windows Vista、最新のWindows 7環境にも対応しています。Windows上での処理の自動化や一括処理(バッチ処理)をテーマとしたVBScriptのサンプルスクリプト集です。付属 CD-ROMには、すぐに使うことができる100以上のサンプルスクリプトを用意しています。

  • VBScriptポケットリファレンス改訂版

    WebでもWindowsでも使えるVBScriptだから手元においてさっと引けるこの一冊!VBScript5.6に対応!待望の改訂版!目的別リファレンスでやりたいことから調べられます。すべての項目にサンプルコード掲載!WSH、ASP、IEすべての環境でお役に立ちます。

  • Excel VBAポケットリファレンス改訂第3版

    好評のExcel VBAポケットリファレンスが改訂第3版としてリニューアルしました。知りたいコマンドがすぐ調べられる機能引きリファレンスはそのままに、最新の Excel 2010に完全対応。もちろん、これまでのExcel 97、2000、2002、2003、2007のすべてのバージョンに対応しています。「こんなときどうするの?」「どう書けばいいの?」という疑問がすぐ解決する、全てのExcel VBAユーザー必携の、最強のリファレンスブックです!

  • Access VBA逆引きハンドブック

    本書はAccess VBAの各機能を、豊富なプログラミング例を使って、初心者にもわかりやすく、かつ網羅的に解説しています。また、やりたいことを目的別に簡単に探せる「逆引き」の構成になっています。

このページの先頭へ