(1)特定の日を色付け
土曜日の例
A1:B1に2003と9をいれる。
Sub test03()
s = DateSerial(Cells(1, 1), Cells(1, 2), 1)
e = DateSerial(Cells(1, 1), Cells(1, 2) + 1, 1) - 1
j = 2
For i = s To e
If Weekday(i) = 7 Then
Cells(j, 1).Interior.ColorIndex = 6
End If
Cells(j, 1) = j - 1
j = j + 1
Next i
End Sub
(3)普通にカレンダーを自動で作りたいんですが
Sub test04()
s = DateSerial(Cells(1, 1), Cells(1, 2), 1)
e = DateSerial(Cells(1, 1), Cells(1, 2) + 1, 1) - 1
i = 2
For k = s To e
w = Weekday(k)
Cells(i, w) = k - s + 1
If w = 7 Then
i = i + 1
End If
Next k
End Sub
説明をすっきりさせるため、12月の次ぎが年を+1、1月にすべきを考慮してませんが、組みこんでください。
If Cells(1, 2) = 12 Then
e = DateSerial(Cells(1, 1) + 1, 1, 1) - 1
Else
e = DateSerial(Cells(1, 1), Cells(1, 2) + 1, 1) - 1
End Ifのように。
(2)○週目)のみにセルに色づけするという
WEEKNUM関数がワークシート関数で使えないので
工夫した。
Sub test05()
s = DateSerial(Cells(1, 1), Cells(1, 2), 1)
If Cells(1, 2) = 12 Then
e = DateSerial(Cells(1, 1) + 1, 1, 1) - 1
Else
e = DateSerial(Cells(1, 1), Cells(1, 2) + 1, 1) - 1
End If
i = 2
wn = 1
For k = s To e
w = Weekday(k)
Cells(i, 1) = k - s + 1
i = i + 1
If w = 7 Then
wn = wn + 1
End If
If wn = 3 Then
Cells(i, 1).Interior.ColorIndex = 6
End If
Next k
End Sub
お礼
大変な作業をありがとうございました。ばっちりできそうなんですが、検証してわからない点があれば、もう一度お聞きしたいと思うのでしばらくお待ちいただけますか。