Date 関数は「今日の日付だけをくれるシンプルな関数」
まず一言でいうと、
Date 関数は「今日の日付(年月日だけ)」を返してくれる関数です。
- 時刻は含みません(0:00 相当)
- 戻り値の型は
Date型です - 引数はありません(かっこを省略して書くことも多い)
イメージとしては、
「今日って何日?」と聞くと、VBAが“日付として”答えてくれる感じです。
Dim d As Date
d = Date ' 例えば 2026/02/23 が入る
VBここで入るのは「文字列」ではなく、「日付型の値」です。
だからこそ、あとで日付計算にそのまま使えます。
Date 関数の基本的な使い方
今日の日付を変数に入れる
一番基本的なパターンです。
Sub SampleDateBasic()
Dim d As Date
d = Date
MsgBox d ' 例: 2026/02/23 と表示される
End Sub
VBここでのポイントは、
dはDate型の変数Date関数の結果(今日の日付)がそのまま代入される- メッセージボックスでは、PCの地域設定に応じた日付形式で表示される
ということです。
セルに「今日の日付」を書き込む
Sub SampleDateToCell()
Range("A1").Value = Date
End Sub
VBこれで、A1 に今日の日付が入力されます。
セルの表示形式によって見え方は変わりますが、中身はちゃんと日付型です。
Date 関数が「日付型」で返ってくることの意味
そのまま「日付計算」に使える
Date 関数の戻り値は Date 型なので、
そのまま足し算・引き算ができます。
Sub SampleDateCalc()
Dim today As Date
Dim nextWeek As Date
Dim lastWeek As Date
today = Date
nextWeek = today + 7 ' 7日後
lastWeek = today - 7 ' 7日前
MsgBox "今日: " & today & vbCrLf & _
"7日後: " & nextWeek & vbCrLf & _
"7日前: " & lastWeek
End Sub
VBここで大事なのは、
Date + 1→ 「明日」Date - 1→ 「昨日」
というふうに、「1」が“1日”として扱われることです。
文字列の "2026/02/23" に +1 しても、
こういう動きにはなりません。
「日付として計算できる」のは、日付型だからこそです。
期限までの日数を求める
例えば、「締切日まであと何日か」を出したいとします。
Sub SampleDateDiff()
Dim today As Date
Dim deadline As Date
Dim remain As Long
today = Date
deadline = #2026/3/10#
remain = deadline - today ' 日数差
MsgBox "締切まであと " & remain & " 日です。"
End Sub
VBdeadline - today の結果は「日数」です。
これも、両方が日付型だからこそできる計算です。
Date 関数と Now 関数・Time 関数の違い
Date は「日付だけ」、Now は「日付+時刻」
よく一緒に出てくるのが Now です。
Dim d As Date
Dim n As Date
d = Date ' 今日の日付(時刻は 0:00)
n = Now ' 今この瞬間の「日付+時刻」
VB例えば、2026/02/23 の 14:30 に実行したとすると、
Date→ 2026/02/23 00:00Now→ 2026/02/23 14:30
というイメージです(表示形式によって見え方は変わります)。
「日付だけでよい」なら Date、
「時刻も含めて“いつ実行したか”を残したい」なら Now、
という使い分けになります。
Time は「時刻だけ」
ついでに Time も。
Dim t As Date
t = Time ' 今の時刻だけ(中身は Date 型)
VB- Date:日付だけ
- Time:時刻だけ
- Now:日付+時刻
という整理で覚えておくとスッキリします。
Date 関数を使うときに意識してほしいポイント
「文字列としての日付」と混同しない
セルに "2026/02/23" と表示されていても、
それが「文字列」なのか「日付型」なのかで、できることが変わります。
Dim s As String
Dim d As Date
s = "2026/02/23" ' 文字列
d = Date ' 今日の日付(Date 型)
VB- s は「文字の並び」なので、
s + 1は日付計算にはならない - d は「日付型」なので、
d + 1は「1日後」になる
「今日の日付を基準に計算したい」と思ったら、
必ず Date(=日付型)を使う、という意識が大事です。
表示形式は Format でコントロールする
Date の中身は「日付型」ですが、
どう表示するかは別問題です。
Sub SampleDateFormat()
Dim today As Date
Dim txt As String
today = Date
txt = Format(today, "yyyy/mm/dd")
MsgBox txt ' 例: "2026/02/23"
End Sub
VB「計算は Date 型で」「見せ方は Format で」
という分担を意識しておくと、日付処理がかなり整理されます。
まとめ:Date 関数は「今日という日付を、計算可能な形で受け取るための入口」
Date 関数の本質は、
「“今日”という情報を、日付型として受け取る」
ことです。
押さえておきたいポイントをコンパクトにまとめると、
Dateは「今日の日付(年月日だけ)」を返す関数- 戻り値は
Date型なので、そのまま日付計算に使える Date + 1で明日、Date - 7で1週間前、などが簡単に書ける- 「日付だけ」なら Date、「日付+時刻」なら Now を使い分ける
- 表示は Format で整える(中身はあくまで日付型)
