【VBA】日付の自動入力コードスニペット集:柔軟な日付処理で作業効率アップ

VBA

Excelで日付を扱う際、VBAを使えば手作業を減らし効率的に処理を行うことができます。本記事では、日付を自動入力する基本的な方法から、月ごとに動的に日数を計算する応用コードまでを紹介します。


1. 今日の日付をセルに入力する

現在の日付をセルに入力する基本的なコードです。

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

2. 日付と時刻を同時に入力する

日付に加えて現在の時刻も入力する場合のコードです。

Sub InsertDateTime()
    Range("A1").Value = Now
End Sub

3. 特定の日付を自動入力する

特定の日付をセルに設定するコードです。

Sub InsertSpecificDate()
    Range("A1").Value = DateSerial(2024, 12, 25) ' 例: 2024年12月25日
End Sub

4. 月末の日付を自動計算して入力する

月ごとに30日や31日、2月の28日や29日を自動判別して入力するコードです。

Sub InsertEndOfMonthDate()
    Dim year As Integer, month As Integer
    year = 2024
    month = 2 ' 対象月を指定

    Range("A1").Value = DateSerial(year, month + 1, 0) ' 指定月の末日を計算
End Sub

解説

  • DateSerial(year, month + 1, 0):翌月の0日目を指定することで、現在の月の最終日を計算します。
  • 例えば、2024年2月の場合、2月29日が入力されます(うるう年を自動判別)。

5. 連続する日付を自動入力する

開始日を基準に、連続した日付を入力するコードです。

Sub InsertSequentialDates()
    Dim i As Integer
    Dim startDate As Date
    startDate = Date ' 今日の日付を基準に

    For i = 0 To 9
        Range("A" & (i + 1)).Value = startDate + i
    Next i
End Sub

6. 特定の範囲に毎月の月末日を入力する

指定した範囲内に、月ごとの最終日を入力するコードです。

Sub InsertMonthlyEndDates()
    Dim year As Integer
    Dim month As Integer
    Dim i As Integer
    year = 2024 ' 対象年を設定

    For i = 1 To 12
        month = i
        Range("A" & i).Value = DateSerial(year, month + 1, 0) ' 月末日を計算
    Next i
End Sub

7. 特定の日付フォーマットで入力する

セルに特定のフォーマット(例: “YYYY/MM/DD”)で日付を入力するコードです。

Sub InsertFormattedDate()
    Dim today As Date
    today = Date
    Range("A1").NumberFormat = "yyyy/mm/dd"
    Range("A1").Value = today
End Sub

注意点

  1. 月末計算の信頼性
    DateSerialを使用すると、月ごとの日数を正確に計算できます。特にうるう年の対応が必要な場合には、この機能が便利です。
  2. フォーマット設定の活用
    日付を設定した後にNumberFormatを適用することで、見やすい形式にカスタマイズできます。
  3. エラー処理の追加
    特定の年や月が無効な場合を考慮して、エラー処理を追加すると、より安全なコードになります。

まとめ

VBAを使った日付の自動入力は、日常業務の効率化に役立ちます。本記事で紹介したコードを参考に、Excelでの日付管理をよりスムーズに進めてください。


コメント

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