【ExcelVBA入門】 日付・時刻を取得するためのNow関数の使い方とは?

こんにちは、フリーランスエンジニア兼ライターのワキザカ サンシロウです。

皆さんは、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関数の使い方・年月日の取得方法など以下で詳しく解説しているので、気になる方は見てみてくださいね!

【VBA入門】日付を扱う方法(取得、書式変換、比較、計算、チェック)
更新日 : 2019年4月21日

Time関数:時刻を取得する方法

Time関数を使えば、簡単に時刻を取得することができます。

Time関数を使ったサンプルコード:

Sub Test_Time()

  Debug.Print "時刻:" & Time

End Sub

実行結果:

時刻:12:19:15

このように、Time関数を使えば簡単に日付を取得することができます。

時刻を使う場合は、Time関数がおすすめです!

ただ、「時・分・秒」など分けて取得したいときもありますよね。

Date関数関数の使い方・時分秒の取得方法など以下で詳しく解説しているので、気になる方は見てみてくださいね!

【VBA入門】日付を扱う方法(取得、書式変換、比較、計算、チェック)
更新日 : 2019年4月21日

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関数」で取得する方法を覚えておけば、応用がきくのでおすすめです。

使い方も簡単なので、ぜひ使ってみてくださいね!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説