シートのVBAコード
下記のコードに変更してください
'カレンダーを作成
Private Sub ExCalenSetSub(mm As Integer)
Dim i As Integer
Dim nlast As Integer
Dim nc As Long
Dim scell As String
Dim startcell As String
Dim s As String
Dim tdate As Date
Dim nrow As Integer
Dim sjitu As String
startcell = Range("C5")
scell = startcell
tdate = Format(Range("C6") & "/" & mm & "/1", "yyyy/mm/dd")
nlast = MonthLastDay(Range("C6"), mm)
Sheets(mm & "月").Select
Sheets(mm & "月").Activate
'月のセット
ActiveSheet.Range(scell).Offset(0, 3) = mm & "月"
'中央に表示
ActiveSheet.Range(scell).Offset(0, 3).HorizontalAlignment = xlHAlignCenter
scell = Range("C5")
Sheets(mm & "月").Select
Sheets(mm & "月").Activate
'行の高さを変更
For i = 6 To 12
Sheets(mm & "月").Cells(i, 1).RowHeight = 75.75
Next
'列の幅を設定
For i = 2 To 8
Sheets(mm & "月").Cells(1, i).ColumnWidth = 12
Next
For i = 1 To 7
Select Case i
Case 1: s = "日"
Case 2: s = "月"
Case 3: s = "火"
Case 4: s = "水"
Case 5: s = "木"
Case 6: s = "金"
Case 7: s = "土"
End Select
'曜日をセット
ActiveSheet.Range(scell).Offset(1, i - 1) = s
'中央に表示
ActiveSheet.Range(scell).Offset(1, i - 1).HorizontalAlignment = xlHAlignCenter
Next
'日曜日の色
ActiveSheet.Range(ActiveSheet.Range(scell), _
ActiveSheet.Range(scell).Offset(7, 0)).Font.Color = vbRed
'土曜日の色
ActiveSheet.Range(ActiveSheet.Range(scell).Offset(0, 6), _
ActiveSheet.Range(scell).Offset(7, 6)).Font.Color = vbBlue
'開始の曜日
nc = Weekday(tdate) - 1
'開始のセル位置
scell = A1Add(scell, 2, nc)
nrow = 2
For i = 1 To nlast
'祭日のチェック
sjitu = GetSaijituName(tdate)
If sjitu <> "" Then
ActiveSheet.Range(scell).Font.Color = vbRed
'日付のセット
ActiveSheet.Range(scell) = i & vbCrLf & sjitu
Else
'日付のセット
ActiveSheet.Range(scell) = i
End If
tdate = tdate + 1
nc = nc + 1
If nc = 7 Then
nc = 0
scell = A1Add(scell, 1, -6)
nrow = nrow + 1
Else
scell = A1Add(scell, 0, 1)
End If
Next
If nc = 0 Then
nrow = nrow - 1
End If
'日付の表示位置
ActiveSheet.Range(ActiveSheet.Range(startcell).Offset(2, 0), _
ActiveSheet.Range(startcell).Offset(nrow, 6)).HorizontalAlignment _
= xlHAlignLeft
'罫線を引く
ActiveSheet.Range(ActiveSheet.Range(startcell).Offset(1, 0), _
ActiveSheet.Range(startcell).Offset(nrow, 6)).Select
Selection.Borders.Weight = xlThin
Selection.Borders.LineStyle = xlContinuous
ActiveSheet.Range(startcell).Select
End Sub
実行結果
2009年カレンダー
1月 祭日 : 元日、成人の日
|
2月 祭日 : 建国記念の日
|
3月 祭日 : 春分の日
|
4月 祭日 : みどりの日
|
5月 祭日 : 憲法記念日、こどもの日
|
7月 祭日 : 海の日
|
9月 祭日 : 敬老の日、秋分の日
|
10月 祭日 : 体育の日
|
11月 祭日 : 文化の日、勤労感謝の日
|
12月 祭日 : 天皇誕生日
|