こんにちは、ヒガシです。
今回はエクセルVBAを使って、以下の画像のように2023年8月のカレンダーを一発作成する方法をご紹介していきます。
(山の日まで考慮しています。)
それではさっそくやっていきましょう!
VBAの実行環境を整えておく
今回はVBAを使って実行していきますので、まずはエクセルの設定を変更してVBAを使えるようにしておきましょう。
以下にその手順を掲載しています。
エクセルマクロ(VBA)の始め方!初心者向けに画像を使って詳細解説
2023/8のカレンダー作成VBAコード
それではカレンダー作成のVBAコードをご紹介します。
Sub make_calendar()
Dim day_data As String, start_day As String
Dim day_number As Integer, i As Integer
Dim shukujitu As Integer
'作成領域をクリアする
Range("A1:G8").ClearContents
'年、月を記述する
Range("A1") = "2023/8"
'曜日データを構築(月からでもOK)
Week = "日,月,火,水,木,金,土"
'開始曜日を指定
start_day = "火"
'月の総日数を指定
day_number = 31
'祝日の指定
shukujitu = 11
'カレンダー作成開始
For i = 0 To 6
Cells(2, i + 1) = Split(Week, ",")(i)
If Split(Week, ",")(i) = start_day Then
col = i + 1
End If
Next
ddd = 7 - col
rrr = 3
i = 1
Do Until i = day_number + 1
If i <= ddd + 1 Then
Cells(rrr, col) = i
If i = shukujitu Then
Cells(rrr, col).Font.Color = RGB(255, 0, 0)
End If
i = i + 1
col = col + 1
Else
ddd = ddd + 7
col = 1
rrr = rrr + 1
End If
Loop
'枠線等の描写
Range(Cells(1, 1), Cells(rrr, 7)).Borders.Weight = xlThin
Range(Cells(1, 1), Cells(rrr, 7)).Font.Bold = 1
Range(Cells(2, 1), Cells(2, 7)).Interior.Color = RGB(200, 220, 255)
Range(Cells(1, 1), Cells(rrr, 7)).HorizontalAlignment = xlCenter
End Sub
このコードは実行する際にアクティブになっているシートのA1セルからG8セルまでを強制的に上書きしてしまいます。
実行前に重要なデータがないかよく確認のうえ、実行しましょう。
サンプルコードの実行方法
それでは先ほどのコードの実行方法をご紹介します。
まずは以下の画像のように開発タブ⇒Visual Basicを選択します。
※開発タブがない人はVBAの設定がうまくできていませんので、以下を参考に再度設定を確認してみましょう。
エクセルマクロ(VBA)の始め方!初心者向けに画像を使って詳細解説
次に以下の画像のように
①標準モジュールの作成
②サンプルコードの貼り付け
③実行
を順番に実行します。
これでもとのエクセルファイルに戻るとカレンダーが作成されているはずです。
おわりに
ということで今回は2023年8月のカレンダーを一発作成する方法をご紹介しました。
来月以降も作成していこうと思いますのでぜひご活用ください。
それではまた!
コメント