【ExcelVBA】日時を扱う方法 DateAdd関数

こんなあなたにおすすめ

・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で覚えておくべき関数 作業効率アップ間違いなし

【Excelについて学びたい方】
Excel 最強の教科書[完全版]
【Excel VBAについて学びたい方】
Excel VBA 脱初心者のための集中講座
エンジニアを目指すなら、TechAcademy!
オンラインスクール受講者数No.1!

・自宅にいながらオンライン完結で勉強できる
➡スクールへの移動時間を削減するため、効率的に学習可能!

・受講生に1人ずつ現役のプロのパーソナルメンターがつく
➡分からないことがわかるまで徹底的にメンターに質問可能!

・チャットで質問すればすぐに回答が返ってくる
➡レスポンスが速いから、わからないことをその場で解決!

・オリジナルサービスやオリジナルアプリなどの開発までサポート
➡就職、転職のときに役立つポートフォリオを開発可能!

無料で体験できるので、まずはお試し
>>TechAcademyの無料体験はこちら

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です