Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【初心者向け】Excelマクロで自動カレンダー作成!日付入力の手間を解決!

【初心者向け】Excelマクロで自動カレンダー作成!日付入力の手間を解決!

Excelで予定表やスケジュールを作るとき、毎月の日付を手で入力するのは手間がかかりますよね。そんなときに便利なのがExcelマクロ(VBA)を使った自動カレンダー生成です!

今回は、指定した年と月から1ヶ月分のカレンダーを自動作成するマクロをご紹介します。初心者でも簡単にコピペで実行できます!


🔧 できること

  • 任意の年・月を指定して、その月のカレンダーを作成

  • 日曜日〜土曜日の曜日表示付き

  • 土日には色付けも!


🧾 ステップ1:ベースとなるExcelシートを準備

  1. A1セルに「年」、B1セルに「月」と入力。

  2. A2セルに西暦(例:2025)、B2セルに月(例:7)を入力。

  3. 空白のシート(例:Sheet1)を用意しておきます。


💻 ステップ2:マクロ(VBA)を入力

  1. Excelのメニューから「開発」タブをクリック
    ※「開発」タブが表示されていない場合は「ファイル → オプション → リボンのユーザー設定」で「開発」にチェックを入れてください。

  2. Visual Basic」ボタンをクリックし、VBAエディターを開きます。

  3. 「挿入 → モジュール」を選択し、以下のコードを貼り付けます👇

 
Sub カレンダー作成()

    Dim year As Integer
    Dim month As Integer
    Dim firstDay As Date
    Dim lastDay As Integer
    Dim startCol As Integer
    Dim startRow As Integer
    Dim i As Integer

    ' 入力された年と月を取得
    year = Sheets("Sheet1").Range("A2").Value
    month = Sheets("Sheet1").Range("B2").Value

    ' 最初の日とその曜日を取得
    firstDay = DateSerial(year, month, 1)
    lastDay = Day(DateSerial(year, month + 1, 0)) ' 月末日
    startCol = Weekday(firstDay) ' 日曜=1, 月曜=2...
    startRow = 4 ' カレンダーの開始行

    Range("A3:G8").Clear

    ' カレンダーのヘッダー(曜日)
    Dim weekDayList As Variant
    weekDayList = Array("日", "月", "火", "水", "木", "金", "土")
    For i = 0 To 6
        Cells(3, i + 1).Value = weekDayList(i)
    Next i
    
    ' カレンダー作成
    Dim dayCounter As Integer: dayCounter = 1
    Dim col As Integer, row As Integer
    col = startCol
    row = startRow
    Do While dayCounter <= lastDay
        Cells(row, col).Value = dayCounter

        ' 土日は色付け
        If col = 1 Then ' 日曜(赤)
            Cells(row, col).Interior.Color = RGB(255, 200, 200)
        ElseIf col = 7 Then ' 土曜(青)
            Cells(row, col).Interior.Color = RGB(200, 200, 255)
        End If
        col = col + 1
        If col > 7 Then
            col = 1
            row = row + 1
        End If
        dayCounter = dayCounter + 1
    Loop
    MsgBox "カレンダーを作成しました!"

End Sub

 
 
 
 

▶ ステップ3:マクロを実行する

  1. VBAエディタを閉じて、Excelに戻ります。

  2. 「開発」タブの「マクロ」ボタンをクリック。

  3. 「カレンダー作成」を選んで「実行」!


📅 実行結果イメージ

_ 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 ...        

※土曜は青、日曜は赤に背景が塗られます。


📝 補足:応用するには?

  • 「祝日」を追加するロジック

  • 複数月の連続作成

  • 予定(予定表)と連動したカレンダー

なども可能です!


✅ まとめ

Excelマクロを使えば、毎月のカレンダーを一瞬で作成できます。
日付入力のミスも減り、見た目もきれいで便利です。VBA初心者の方でも、この記事のコードをコピーして実行すればすぐに体験できますよ!


💡 次回予告

次回は、「祝日を自動反映させるカレンダーマクロ」の作り方をご紹介します!