VBAのDate関数を使って現在の日付を取得する方法をわかりやすく解説

スポンサーリンク
スポンサーリンク

Dateの概要

現在の日付を取得する VBAの予約語

Date

概要 Date 関数は、VBAで現在の日付を取得するための組み込み関数です。システムの設定された日付を取得し、処理に利用できます。

わかりやすく説明 現在の日付を取得するための関数。

  • 現在の日付(年・月・日)を取得できる。
  • 時間は含まれず、日付のみ取得される。
  • Excel VBAでレポート作成やデータ記録に役立つ。

Dateの基本的な使い方

以下の例では、現在の日付を取得し、メッセージボックスに表示します。

Sub ShowCurrentDate()
    MsgBox "今日の日付: " & Date
End Sub

解説:

  • Date は現在の日付を取得する関数。
  • システムの日付設定に基づいた日付が表示される。

Excelシートに現在の日付を入力

現在の日付をExcelのセルに自動入力する方法です。

Sub InsertCurrentDate()
    Range("A1").Value = Date
End Sub

解説:

  • A1セルに現在の日付を入力する。
  • 日付として扱われるため、セルの書式設定で表示形式を変更可能。

DateとNowの違い

Now 関数を使うと、日付と時間の両方を取得できます。

Sub CompareDateAndNow()
    MsgBox "Date の結果: " & Date & vbCrLf & "Now の結果: " & Now
End Sub

解説:

  • Date: 日付のみ取得(例:2025/02/01)。
  • Now: 日付と時間の両方を取得(例:2025/02/01 12:34:56)。

過去や未来の日付を取得する

DateAdd 関数を使うと、指定した日数の前後の日付を取得できます。

Sub ShowFutureAndPastDates()
    MsgBox "昨日: " & DateAdd("d", -1, Date) & vbCrLf & _
           "明日: " & DateAdd("d", 1, Date)
End Sub

解説:

  • DateAdd("d", -1, Date): 昨日の日付を取得。
  • DateAdd("d", 1, Date): 明日の日付を取得。

Excel VBAでのDateの活用

日付を使ってファイル名を自動設定する例です。

Sub SaveWorkbookWithDate()
    Dim filePath As String
    filePath = "C:\Reports\Report_" & Format(Date, "yyyy-mm-dd") & ".xlsx"
    
    ActiveWorkbook.SaveAs Filename:=filePath
    MsgBox "ファイルを保存しました: " & filePath
End Sub

解説:

  • ファイル名に現在の日付を付加して保存。
  • Format(Date, "yyyy-mm-dd") で日付をフォーマット。

Dateの制限

  • 時間は取得できない: 時間を取得する場合は Now を使用。
  • システムの日付設定に依存: システム設定によって日付の形式が異なる可能性がある。
  • 日付の計算はDateAdd関数を使用: 未来や過去の日付を取得するには DateAdd を使う必要がある。

よくある質問

Q: Date関数の戻り値はどのデータ型ですか?
A: Date関数の戻り値は Date 型です。
Q: 現在の時間も含めて取得したい場合は?
A: Now 関数を使用すると、日付と時間の両方を取得できます。
Q: 日本の日付形式(yyyy/mm/dd)で表示するには?
A: Format(Date, "yyyy/mm/dd") を使うと、希望の形式で表示できます。

まとめ

  • Date関数は現在の日付を取得するために使用される。
  • 時間は含まれず、日付のみが取得される。
  • Excel VBAでは、日付をセルに入力したり、ファイル名に使用できる。
  • 未来・過去の日付を取得する場合は DateAdd を使う。