こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。
皆さんは、VBAで日付・時刻を取得する方法を知っていますか?
データの更新日時を書き込むケースなどで、日付・時刻はよく使いますよね。
そこで今回は、
・日付・時刻を取得する方法
といった基礎的なことから、
・Date関数・Time関数・Now関数の使い方
・Now関数 + Format関数を使った応用テクニック
といった応用的な方法まで、徹底的に解説します!
VBAで日付・時刻を取得する方法とは
まず、VBAで日付・時刻を取得する方法について解説します。
おおきく分けて3つの方法があるので、それぞれ解説しますね。
Date関数:日付を取得する方法
Date関数を使えば、簡単に日付を取得することができます。
Date関数を使ったサンプルコード:
Sub Test_Date() Debug.Print "日付:" & Date End Sub
実行結果:
日付:2018/10/05
このように、Date関数を使えば簡単に日付を取得することができます。
日付を使う場合は、Date型がおすすめです!
ただ、「年・月・日」など分けて取得したいときもありますよね。
Date関数の使い方・年月日の取得方法など以下で詳しく解説しているので、気になる方は見てみてくださいね!
Time関数:時刻を取得する方法
Time関数を使えば、簡単に時刻を取得することができます。
Time関数を使ったサンプルコード:
Sub Test_Time() Debug.Print "時刻:" & Time End Sub
実行結果:
時刻:12:19:15
このように、Time関数を使えば簡単に日付を取得することができます。
時刻を使う場合は、Time関数がおすすめです!
ただ、「時・分・秒」など分けて取得したいときもありますよね。
Date関数関数の使い方・時分秒の取得方法など以下で詳しく解説しているので、気になる方は見てみてくださいね!
Now関数:日付 + 時刻を取得する方法
Date関数で日付・Time関数で時刻を取得できますが、日付 + 時刻をセットで取得するNow関数もあります。
Now関数を使ったサンプルコード:
Sub Test_DateTime() Debug.Print "日付+時刻:" & Now End Sub
実行結果:
日付+時刻:2018/10/05 12:19:40
このように、Now関数を使えば簡単に「日付 + 時刻」を取得することができます。
「日付 + 時刻」をセットで使う場合は、Now関数がおすすめです!
Now関数 + Format関数を使った応用テクニック
ここまで日付・時刻・日付 + 時刻の取得方法を解説してきました。
ただ、ここまでの解説を読んで、次のように思った方もいるのではないでしょうか。
「用途によって使う関数が違うし、覚えるのがちょっと大変そう・・・」
そんな方におすすめなのが、「Now関数 + Format関数」を使う方法です。
「日付 + 時刻」を取得するNow関数と、フォーマットを指定するFormat関数を使えば、日付・時刻・形式によって様々な表現ができます!
「Now関数 + Format関数」を使ったサンプルコード:
Sub Test() Debug.Print "YYYY/MM/DD :" & Format(Now(), "YYYY/MM/DD") & vbCrLf & _ "YYYY-MM-DD :" & Format(Now(), "YYYY-MM-DD") & vbCrLf & _ "YYYY年MM月DD日 :" & Format(Now(), "YYYY年MM月DD日") & vbCrLf & _ "MM月DD日 :" & Format(Now(), "MM月DD日") & vbCrLf & _ "HH:MM :" & Format(Now(), "HH:MM") & vbCrLf & _ "HH:MM:SS :" & Format(Now(), "HH:MM:SS") & vbCrLf & _ "YYYY/MM/DD HH:MM:SS :" & Format(Now(), "YYYY/MM/DD HH:MM:SS") End Sub
結果:
YYYY/MM/DD :2018/10/05 YYYY-MM-DD :2018-10-05 YYYY年MM月DD日 :2018年10月05日 MM月DD日 :10月05日 HH:MM :12:35 HH:MM:SS :12:35:14 YYYY/MM/DD HH:MM:SS :2018/10/05 12:35:14
「Format(Now() , 表示形式)」を指定することで、日付・時刻・日付 + 時刻どの形式でも表示できていますよね。
「Now関数で現在の情報を取得 → Format関数で表示形式を変換」の流れでやっているので2つの処理がありますが、Date関数やTime関数を使ったときと速度もほとんど変わらないので、Now関数 + Format関数だけ覚えておけばOKです!
まとめ
今回は、VBAで日付・時刻を取得する方法について解説しました。
「Now関数 + Format関数」で取得する方法を覚えておけば、応用がきくのでおすすめです。
使い方も簡単なので、ぜひ使ってみてくださいね!