【エクセルVBA】カレンダーを一発作成する方法!開始曜日、日数指定するだけ!

このページではエクセルVBAを使って、以下の画像のようにシート上にカレンダーを一発作成する方法をご紹介していきます。

マクロでカレンダーを作成するという概要図

基本的には、コード中で月の開始曜日、月の総日数を指定してあげるだけで簡単に作成できます。

 

資料作成の際にぜひご活用ください。

 

それではさっそくやっていきましょう。

 

※VBAを使ったことがない、という方は以下で始め方を解説していますので、まずはこちらからご覧ください。

エクセルマクロ(VBA)の始め方!初心者向けに画像を使って詳細解説

 

スポンサーリンク

カレンダー作成するサンプルVBAコード

それでは早速ですが、以下がカレンダー作成コードです。

Sub make_calendar()
    Dim day_data, start_day As String
    Dim day_number, i As Integer
    '作成領域をクリアする
    Range("A1:G7").ClearContents
    '曜日データを構築(月からでもOK)
    Week = "日,月,火,水,木,金,土"
    '開始曜日を指定
    start_day = "土"
    '月の総日数を指定
    day_number = 31
    'カレンダー作成開始
    For i = 0 To 6
        Cells(1, i + 1) = Split(Week, ",")(i)
        If Split(Week, ",")(i) = start_day Then
            col = i + 1
        End If
    Next
    ddd = 7 - col
    rrr = 2
    i = 1
    Do Until i = day_number + 1
        If i <= ddd + 1 Then
            Cells(rrr, col) = i
            i = i + 1
            col = col + 1
        Else
            ddd = ddd + 7
            col = 1
            rrr = rrr + 1
        End If
    Loop
End Sub

※このマクロでは実行時にアクティブなシートのA1セルからG7セルに強制的に上書きするようになっています。

実行前は新しいシートを作成してから実行することをオススメします。

 

基本的には指定した情報をもとにゴリゴリfor文を回して作成しているだけですね。

(もうすこしうまく作れればいいのですが、いいアイデアが浮かびませんでした。)

 

スポンサーリンク

カレンダー作成マクロの使い方

先ほどのマクロの使い方を解説しておきます。

 

まずは7行目にて、週の曜日を指定します。

今回は日曜日から始まるように書いていますが、ここは月曜日から始まるようにしても問題なく動作します。

 

次に9行目にて、作成したいカレンダーの初日の曜日を指定してあげます。

 

最後に11行目で月の総日数を指定してあげましょう。

 

ここまでできたら、開発タブ⇒マクロ⇒make_calenderを選択⇒実行で実行します。

 

これでマクロ実行時のアクティブセルのA1セルからG7セルにカレンダーが作成されているはずです。

 

スポンサーリンク

サンプルコードの実行結果確認

以下の設定で、2022/4のカレンダーを作成してみました。

‘開始曜日を指定
start_day = “金”
‘月の総日数を指定
day_number = 30

2022/4のカレンダーを作成した結果

問題なく作成できていますね。

 

ついでに2022/5のカレンダーも作成してみました。

‘開始曜日を指定
start_day = “日”
‘月の総日数を指定
day_number = 31

2022/5のカレンダーを作成した結果

こちらも問題なく作成できていますね。

 

スポンサーリンク

おわりに

というわけで今回は、エクセルVBAをつかって簡易的なカレンダーを作成する方法をご紹介しました。

 

ぜひ業務効率化にご活用ください。

 

このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。

⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

それではまた!

コメント

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