◆日曜日◆
今回も訪問して下さりありがとうございます。
今回は以前VBAで作ったカレンダーの土曜日&日曜日の見た目をよくするや~つですねぇ~。やっぱり土日は文字の色を変えたくなります。

もちろん、このカレンダーの場合は日曜日・土曜日の位置は固定されてるので…。
Range("B5:B10").Font.ColorIndex =vbRed
Range("H5:H10").Font.ColorIndex =vbBlue
こんな単純なコードでも文字の色は変わります。
でも、やっぱりVBAらしく自分なりのコード書きたくなるんですよねぇ〜。
Sub irowake()
For i = 4 To Sheet1.Range("B4").End(xlDown).Offset(6, 0).Row
For j = 4 To Sheet1.Range("B4").End(xlDown).Offset(6, 0).Row
If Weekday(ActiveSheet.Cells(i, 2).Value, 1) = 1 Then
Cells(i, 2).Font.ColorIndex = 38
If Weekday(ActiveSheet.Cells(j, 8).Value, 1) = 7 Then
Cells(j, 8).Font.ColorIndex = 37
End If
End If
Next j
Next i
End Sub
※B4の最終行を取得して「B列」に日曜日があるので、その6つ先.Offset(6, 0).Rowになる「H列」の最終行を取得します。
え?でもなんで2回もForーNextの繰り返しを作るの?って思うかもしれないですね。
それはカレンダーの日曜日と土曜日が非対称だからです。


カレンダーは動かしてると生きてるみたいに変動しますもんね。
だから、どんなケースでもそこにある文字の色が変わるってコード書きたくなります。
それに、表の見た目とかやっぱりマイルドな色に仕上げたいとかありますもんね。
If Weekday(ActiveSheet.Cells(i, 2).Value, 1) = 1 Then
Cells(i, 2).Font.ColorIndex = 38
If Weekday(ActiveSheet.Cells(j, 8).Value, 1) = 7 Then
Cells(j, 8).Font.ColorIndex = 37
End If
End If
※もし、曜日が日曜日「1」だったら→ピンク「38」にして欲しい。
もし、曜日が土曜日「7」だったら→水色「37」にして欲しい。
その願いを叶えてくれたら終わって下さいの「 End If 」ですねぇ~。
◆後は飾り付け◆

ハッキリ言って、今回の日曜日と土曜日の色を変更出来たら後は簡単です!
ネットで調べたらいろんな飾り付けが出来ます。
ちょっとした時間でもエクセルのこと考えてたら楽しいです。
ワードで絵を描いてるから「ワード好き」って思われてるかもですねぇー(笑)
実はエクセルも好きなんですよぉ〜。
◆級◆
◆編◆
Sub iro()
Dim r As Range
For Each r In ActiveSheet.Range("B14:H24")
With ActiveSheet.Range(r.Address)
.Value = r
.Interior.Color = r.DisplayFormat.Interior.Color
End With
Next r
Range("B14:H24").BorderAround Weight:=xlThin
End Sub
※最後のB14からH24までを白く囲ってますよね。
ここは少しVBAを自分なりに楽しんでみました。
こんな難しいコードにする必要はないのかもです。でも、白く囲ってもセルを一つ一つ選べるなんて形に拘ってみました[笑]
※これは僕が勝手に考えてるコードなので、もっと良い方法もあると思います。
きっと色んな方法で日曜日・土曜日の色って変更出来るんだろうなぁ~。
考えて記述するのが面白いので、自分で考えたコードを紹介しました!
心よりお待ち申し上げております。