Excel VBA 逆引き集 | 日付選択

Excel VBA
スポンサーリンク

日付選択の基本

Excel VBAで「ユーザーに日付を選んでもらう」場面はよくあります。
例えば「開始日と終了日を入力して集計」「今日の日付を自動入力」など。初心者向けに、コード例やテンプレートをかみ砕いて説明します。


基本の考え方

  • 日付は文字列ではなく「Date型」で扱う
    → 計算や比較ができる。
  • 入力方法の例
    • InputBox で日付を入力してもらう
    • UserFormに TextBoxCalendarコントロール を配置
    • VBAで Date 関数を使って「今日の日付」を取得

テンプレ1:今日の日付をセルに入力

Sub InsertToday()
    Worksheets("Data").Range("A1").Value = Date
End Sub
VB
  • ポイント:
    • Date はシステム日付(今日)を返す。
    • 「今日の日付」を自動入力できる。

テンプレ2:InputBoxで日付を入力してセルに書き込み

Sub InputDate()
    Dim d As Date
    d = InputBox("日付を入力してください (例: 2025/12/11)")
    Worksheets("Data").Range("A2").Value = d
End Sub
VB
  • ポイント:
    • ユーザーに日付を入力してもらう。
    • 入力値をセルに書き込む。

テンプレ3:開始日と終了日を選んで期間を計算

Sub DateRange()
    Dim startDate As Date, endDate As Date
    startDate = InputBox("開始日を入力してください (例: 2025/12/01)")
    endDate = InputBox("終了日を入力してください (例: 2025/12/31)")

    Dim days As Long
    days = endDate - startDate

    MsgBox "期間は " & days & " 日です"
End Sub
VB
  • ポイント:
    • 日付同士の差を計算できる。
    • endDate - startDate で日数を求められる。

テンプレ4:UserFormで日付選択(TextBox利用)

UserFormに TextBox1(開始日)TextBox2(終了日)CommandButton1 を配置。

Private Sub CommandButton1_Click()
    Dim startDate As Date, endDate As Date
    If IsDate(TextBox1.Value) And IsDate(TextBox2.Value) Then
        startDate = CDate(TextBox1.Value)
        endDate = CDate(TextBox2.Value)
        MsgBox "期間は " & endDate - startDate & " 日です"
    Else
        MsgBox "正しい日付を入力してください"
    End If
End Sub
VB
  • ポイント:
    • IsDate で日付チェック。
    • 入力値を CDate で日付型に変換。

テンプレ5:カレンダーコントロールで日付選択(古いExcelで利用可能)

UserFormに Microsoft Date and Time Picker Control を配置(環境によっては利用不可)。

Private Sub CommandButton1_Click()
    Worksheets("Data").Range("A1").Value = DTPicker1.Value
End Sub
VB
  • ポイント:
    • カレンダーから日付を選べる。
    • 環境によってはコントロールが使えない場合がある。

例題で練習

'例1:今日の日付を入力
Sub Example1()
    InsertToday
End Sub

'例2:InputBoxで日付入力
Sub Example2()
    InputDate
End Sub

'例3:開始日と終了日で期間計算
Sub Example3()
    DateRange
End Sub

'例4:UserFormで日付選択
' → CommandButton1_Click にコードを記述
VB

初心者向けポイント

  • 日付は「Date型」で扱う → 計算や比較が可能。
  • IsDateでチェック → 入力が正しい日付か確認できる。
  • CDateで変換 → 文字列を日付型に変換。
  • Date関数で今日の日付 → 自動入力に便利。
  • UserFormで入力欄を用意 → 実務で使いやすい。

👉 この「日付選択テンプレ」を覚えておけば、Excel VBAで 日付入力・期間計算・シートへの書き戻し を簡単に実装できます。

タイトルとURLをコピーしました