DateAdd関数
1日後とか1週間後ってDate型変数に⁺1とか⁺7とかで出来ちゃうんですよね。でも例えばちょうど1か月後とかを指定したい時に1か月後っていくつ足せばいいのかわかりませんよね?
なぜかって?それは1か月は30日だったり31日だったり、あるいは28日だったりしますよね?
そんな時に役立つのがDateAdd関数です。
DateAdd関数はいわゆる引数というものを指定して年・月・週など任意の単位の日付をプラスしたものを追加する事が出来る関数なのです。
指定方法
DateAdd(任意の単位を文字列で指定, どれだけ?, 元になる日付)
という事ですね。
例えば今日の1か月後を指定するとするならば
DateAdd("m", 1, Date)
結果をDebug.Printでイミディエイトウィンドウに出力してみましょう。
僕が今作業しているのは2017年11月23日なので1か月後の2017年12月23日が帰ってきましたね。この中で出てきているDateとは今日の事です。
気を付けて使わなければいけないのは1月31日(月末)の1か月後は月末になるってことですね。
やってみましょう。
この様に来年1月31日の1か月後は2月28日ですね。だからこそ便利な関数だったりするのですが、この特性は気を付けなければ思わぬミスを生むかも知れませんので覚えておきましょう。
単位の種類
よく使うものだけを取り敢えず抜粋します。
- yyyy … 年
- m … 月
- d … 日
- ww … 週
- h … 時
- n … 分
- s … 秒
これで日付の管理が簡単になったと思います。
関数という事に注意
DateAddは関数なのでそれ単体では使う事ができません。
結果を変数に入れるか、先程やったみたいにDebug.Printで出力するか、あるいはセルに直接出力するか。といった形でどこかに結果を返さなければ成り立ちませんのでご注意下さい。
とは言え大体変数に入れる形で使う事が多いのでそこまで意識しなくても大丈夫だとは思いますが。
では次回は今回お話に出てきた引数を少し学んでいきましょう。