【エクセルVBA】今日の日付・時間を取得する

ExcelVBA

今回はエクセルVBAで「今日の日付を取得して入力する方法」を紹介します。

この記事の内容

  1. 『DATE関数』を使う
  2. 表示形式(yyyy/mm/dd)を変える『Format関数』
  3. 時刻を表示する『Time関数』
  4. “日時”を表示する場合には『Now関数』
  5. 『DATE関数』『Time関数』『Now関数』はどんな時に使える?

「今日の日時」を取得するVBAプログラミング

こんにちは、Fujiya(@fujiya_xyz)です。

エクセル作業の中で『日付を入力する』ということはよくあることだと思います。例えば「登録日」「印刷した日」など日付を記録しておきたいときなど。

これが作業完了と同時に自動入力されると便利ですよね。実際には様々なことに利用でき、VBAでは基礎のコードとなります。

今回もなるべく専門用語を使わずに説明をしていきたいと思います。是非最後までお読みください。

『DATE関数』を使う

今日の日付(年/月/日)を取得したいという場合にはDATE関数を使います。

「どうやって使うんだ?」って感じですが、実際にはメチャメチャ簡単です。

サンプルとしてメッセージボックスに表示させてみたいと思います。

コードとするとこんな感じ(以下)

Sub 今日の日付を表示する()
MsgBox Date
End Sub

これを実行すると以下のようなメッセージが表示されます。

DATE関数を使う

画像では記事を作成している当日の日付が表示されていますが、読者さんの場合は実行した日付が表示されているはず。

これは「日付を取得」⇒「メッセージボックスで表示」という流れとなりますが、「日付を取得」⇒「任意のセルに表示」など様々な利用ができ便利です。

ワークシート関数のToday()と考え方は同じですね。

サンプルコードの実行の仕方がわからない人は以下のリンクで説明しているので参考にしてみてください。

サンプルコード実行の仕方を紹介している記事

表示形式(yyyy/mm/dd)を変える『Format関数』

DATE関数で表示した日付は、原則yyyy/mm/dd形式で表示されます。

表示形式は様々あり、任意のモノに変更可能です。

【例】日付の表示形式

  • yyyy/mm/dd
  • yyyy年mm月dd日
  • m/d
  • mm/dd
  • aaaa(曜日)
  • dddd(曜日の英語表記)

一部ですがよく使用するのはこの辺りだと思います。

実際に表示してみます。今回はまとめてメッセージボックスに表示させます、コードは以下です。

Sub 今日の日付を表示する()
MsgBox Date & vbCrLf & _
Format(Date, "yyyy年mm月dd日") & vbCrLf & _
Format(Date, "m/d") & vbCrLf & _
Format(Date, "mm/dd") & vbCrLf & _
Format(Date, "aaaa") & vbCrLf & _
Format(Date, "dddd")
End Sub

vbCrLf」は改行をするコードです。これはMsgboxのみの改行となるので注意が必要です。「_」はヴィジュアルエディタ内の改行となります。表示形式を選んで使う場合には必要ありませんので削除してください。

これを実行すると以下のようなメッセージボックスが表示されます。

表示形式(yyyy/mm/dd)を変える『Format関数』

時刻を表示するTime関数

Dateとほぼ同じ考え方になりますが、時刻を表示する場合にはTime関数を使います。

同じように以下のサンプルコードをメッセージボックスに表示してみます。

Sub 今の時間を表示する()
MsgBox Time
End Sub

これを実行すると下のようなメッセージボックスに現在の時間が表示されます。

時刻を表示するTime関数

こちらも表示形式をFormat関数で変更することができます。

“日時”を表示する場合には『Now関数』

「日付」と「時刻」を両方取得したい場合にはNow関数を使います。

考え方的には「Date」「Time」と同じですね。

サンプルコードはこんな感じ。以下。

Sub 日時を表示する()
MsgBox Now
End Sub

もう説明もいらないと思うのですが、コードは簡単ですね。下のようにメッセージボックスには「日付」と「時刻」の両方が表示されます。

『DATE関数』『Time関数』『Now関数』はどんな時に使える?

様々なことに使える日付・時間取得の関数ですが、僕の実際の使用例を挙げます。

  • カレンダー
  • 顧客登録日
  • データを削除した日
  • 管理番号として
  • 書類の作成日

単純にカレンダー代わりに表示させることもあります。

1番使うことが多いのが、データを登録をした日付を同時に入力することです。手入力だと間違いのリスクもあるので自動入力の方が効率が良いです。。

「速度」と「正確性」が向上します。

また、変わった使い方としては”書類の文書管理番号“としての使い方ですね。やり方としては様々ありますが、年月日時分秒の14ケタで作成した文書に番号を割り振って管理するとかですね。(例:202003301659)

これに関しては、僕の無料配布しているFAX送信状のツールでも使用しており、実際に使っていただくとイメージしやすいと思います。下のチェックしてみてください。
≫【無料ダウンロード】誰でも簡単に使える『FAX送付状テンプレート』

文書番号ラベル.Caption = Format(Now, "FAX" & "yymmddHHMMSS")」というコードを使って、入力フォームが起動した時点で管理番号を作成するプログラムにしています。

今回の記事は以上になります
最後まで読んでいただきましてありがとうございました。