こんなあなたにおすすめ
・Excel VBAでDateAdd関数の使い方を知りたい
Excel VBAで日付や時間を扱っていると、任意の日付や時間にある間隔を追加して値を返してほしいということがあると思います。
そんなときに使えるDateAdd関数について解説します。
DateAdd関数の使い方
DateAdd関数を使うことで簡単に日付や時間を扱うことができます。
DateAdd関数 基本構文
基本的な書き方は、以下の通りです。
DateAdd(Interval, Number, Date)
Intervalの指定方法は以下の通りです。
設定値(Interval) | 内容 |
---|---|
yyyy | 年 |
m | 月 |
d | 日 |
h | 時 |
n | 分 |
s | 秒 |
q | 四半期 |
ww | 週 |
y | 通年での日数 |
w | 平日 |
Date関数については、下記の記事で解説していますので、ご参照ください。
>>【ExcelVBA】現在の日付を取得する方法 Date関数
DateAdd関数 サンプルコード
上記の表で紹介した内容を実際に書いてみましょう。
Sub test1() Debug.Print Now '2021/01/09 15:32:27 Debug.Print DateAdd("yyyy", 1, Date) '2022/01/09 Debug.Print DateAdd("m", 1, Date) '2021/02/09 Debug.Print DateAdd("d", 1, Date) '2021/01/10 Debug.Print DateAdd("h", 1, Now) '2021/01/09 16:32:27 Debug.Print DateAdd("n", 1, Now) '2021/01/09 15:33:27 Debug.Print DateAdd("s", 1, Now) '2021/01/09 15:32:28 Debug.Print DateAdd("q", 1, Date) '2021/04/09 Debug.Print DateAdd("ww", 1, Date) '2021/01/16 End Sub
Intervalが”yyyy”なら、1年後の日時、”m”なら1か月後の日時、”d”なら1日後の日時を返します。
Intervalが”q”の場合は、3か月後、”ww”なら、1週間後(+7日)の日時を返します。
Numberは、明日以降(+)だけでなく、今日以前の日付(-)も取得できます。
Sub test2() Debug.Print DateAdd("d", -1, Date) '2021/01/08 End Sub
日付が存在しない場合・・・
Intervalを”d”にして、日付を加算したときに、その日付が存在しなかった場合は、月末の次の日になります。
Sub test3() Dim d As Date d = "2021/01/09" Debug.Print DateAdd("d", 23, d) '2021/02/01 End Sub
日時を変数で扱う方法
日時は、変数でも扱うことができます。
Sub test4() Dim NowDate As Date Dim d As Date NowDate = "2021/01/09 15:32:27" '1日足す d = NowDate + 1 Debug.Print d '2021/01/10 15:32:27 '1時間足す d = NowDate + #1:00:00 AM# Debug.Print d '2021/01/09 16:32:27 End Sub
まとめ
ここまで、DateAdd関数について解説しました。
DateAdd関数を使うことで、日時の操作することができます。
ぜひ使ってみてください。
Date関数については、下記の記事で解説していますので、ご参照ください。
>>【ExcelVBA】現在の日付を取得する方法 Date関数
Time関数については、下記の記事で解説していますので、ご参照ください。
>>【ExcelVBA】現在の時刻を取得する方法 Time関数の使い方
Now関数については、下記の記事で解説していますので、ご参照ください。
>>ExcelVBA】現在の日時を取得する方法 Now関数の使い方
Excelで作業効率をアップしたい方は、下記の記事もご参照ください。
>>Excelのショートカット一覧 覚えて作業効率アップ!!
>>Excelで覚えておくべき関数 作業効率アップ間違いなし
オンラインスクール受講者数No.1!
・自宅にいながらオンライン完結で勉強できる
➡スクールへの移動時間を削減するため、効率的に学習可能!
・受講生に1人ずつ現役のプロのパーソナルメンターがつく
➡分からないことがわかるまで徹底的にメンターに質問可能!
・チャットで質問すればすぐに回答が返ってくる
➡レスポンスが速いから、わからないことをその場で解決!
・オリジナルサービスやオリジナルアプリなどの開発までサポート
➡就職、転職のときに役立つポートフォリオを開発可能!
無料で体験できるので、まずはお試し
>>TechAcademyの無料体験はこちら