回答No.4の追加です。
VBAによる処理でアクティブセルのみを対象にしたセルの塗りつぶしです。
アクティブセルの移動はカーソルキーまたはマウスクリックで変更できますが何れの場合でも同様になります。
対象範囲はC8:N38にしてあり、祝日一覧はQ8:Q38で空欄もありますので特例の休日を追加できます。
コードは添付画像にも表示してありますが次のようになります。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i
Dim a, c, r, di, wi
Range("c8:n38").Interior.ColorIndex = xlNone
a = ActiveCell.Address
c = ActiveCell.Column
r = ActiveCell.Row
i = ActiveCell.Offset(0).Value
If r > 7 And r < 39 And c > 2 And c < 15 Then
di = DateSerial(2017, Cells(7, c), Cells(r, 2))
wi = Weekday(di)
If wi = 1 Then Range(a).Interior.ColorIndex = 6
If wi = 7 Then Range(a).Interior.ColorIndex = 4
n = 0
For Each r In Range("Q8", "Q38")
If di = r Then n = n + 1
Next
If n > 0 Then Range(a).Interior.ColorIndex = 8
End If
End Sub
アクティブセルの移動でコードが実行され、最初にC8:N38の塗りつぶしをキャンセルして移動先の位置から該当日付を算出して曜日が土または日のとき指定の色で塗りつぶします。
次に、祝日一覧と比較して一致するときは祝日の指定色で塗りつぶします。
貼付画像はExcel 2013で検証した結果です。
アクティブセルはD18(2017/2/11)なので祝日(建国記念の日)となり水色を指定しました。(青系の淡い色が良いと判断しました)
お礼
早速いろいろい試してみます。 アドバイスありがとうございました。