はじめに
Excelで作業をしていると、
「今日の日付を自動で入力したい」
「処理した日付を記録しておきたい」
そんな場面がよくあります。
VBAでは、今日の日付を簡単に取得でき、
ログ作成や更新履歴の管理など、実務で静かに役立ちます。
ここでは、今日の日付を取得する基本のコードと、
実務で使うときのポイントを解説します。
まずはコードを確認
Dim d As Date
d = Date
もっともシンプルな書き方です。
Date は「今日の日付」を返します。
今日の日付を取得する方法
今日の日付を取得する(Date)
d = Date
- 日付のみ
- 時刻は含まない
- 実務で最も使われる
今日の日時を取得する(Now)
d = Now
- 日付+時刻
- ログや処理時間の記録に便利
今日の日付をセルに入力する
Range("A1").Value = Date
A1セルに今日の日付が入ります。
日付の書式を整えて入力する
Range("A1").Value = Date
Range("A1").NumberFormat = "yyyy/mm/dd"
表示形式を指定すると、見た目が整います。
具体的な例で理解する
更新日を記録する
Range("B1").Value = "更新日:" & Format(Date, "yyyy/mm/dd")
見出しと日付をまとめて記録できます。
ログに日時を追加する
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(lastRow, 1).Value = Now
Cells(lastRow, 2).Value = "処理完了"
処理履歴を残す実務でよく使うパターンです。
条件に応じて今日の日付を入れる
If Range("A2").Value = "" Then
Range("A2").Value = Date
End If
空欄のときだけ日付を入れるなど、柔軟な使い方ができます。
Date と Now の違い(実務で特に大切)
| 関数 | 返す値 | よく使う場面 |
|---|---|---|
| Date | 今日の日付 | 更新日、入力日、日付管理 |
| Now | 今日の日時 | ログ、処理時間、履歴管理 |
実務では Date が基本、Now は必要なときだけ が安心です。
注意点(実務で気をつけたいこと)
- 日付は「値」と「表示形式」が別物
→ NumberFormat を設定しないと、意図しない表示になることがあります。
- システム日付に依存する
→ PCの日付設定が間違っていると、取得結果もずれます。
- 文字列として扱う場合は Format を使う
→ “2026/03/28” のように整えたいときは Format が便利です。
応用:今日の日付を文字列として取得する
Dim s As String
s = Format(Date, "yyyy-mm-dd")
ファイル名やログ用に使いやすい形式です。
まとめ
- Date で今日の日付、Now で今日の日時を取得できる
- セールに入力するだけなら Range(“A1”).Value = Date でOK
- 表示形式は NumberFormat で整える
- ログや履歴には Now が便利
- 日付は「値」と「見た目」が別物であることに注意
今日の日付を扱えるようになると、
更新履歴やログ管理がぐっとスムーズになります。

今日の日付を自動で扱えると、
「記録する」という作業が静かに、でも確実に楽になります。
VBAは、そんな日々の積み重ねをそっと支えてくれます。

今日の日付って、ちょっと特別だよね。
VBAなら、いつでも正確に教えてくれるよ。

コメント