祝祭日と土日に色を付けたい場合
このページでは土日に色を付けたい場合の方法を紹介しています。
土日だけでなく祝祭日や振り替え休日なども色を付けたい場合は「VBAで祝祭日と土日に色を付ける」をご参照ください。
土日セルに色を付ける
Excelを使う上で日付を入力することがあります。その際に以下のように土日に色を付けた方が分かりやすくなります。
祝日の判定は出来ませんが、土日であればWeekday関数で判定することが出来ます。
必要であれば他の曜日も判定できます。
ここでは指定セル範囲の日付を判定して色を付けるマクロを紹介します。
指定セル範囲の日付セルに色を付けるマクロ
引数にセル範囲を渡すと日付が入力されているセルであれば曜日を判定して色を付けます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
Sub SetWeekdayColor(r As Range) Dim rCell As Range '// セル Dim s '// セル値 Dim week '// Weekday関数値 Application.ScreenUpdating = False '// 引数セル範囲をループ For Each rCell In r s = rCell.Value '// 日付ではない場合は次ループへ If (IsDate(s) = False) Then GoTo CONTINUE End If '// 曜日取得 week = Weekday(s) '// 日曜日の場合 If (week = vbSunday) Then rCell.Interior.Color = RGB(255, 183, 192) '// 土曜日の場合 ElseIf (week = vbSaturday) Then rCell.Interior.Color = RGB(193, 193, 255) End If CONTINUE: Next Application.ScreenUpdating = True End Sub |
コード説明
引数にはセル範囲を指定します。単一セルでも選択セル範囲でも構いません。
引数のセル範囲を1セルずつループし、値が日付形式かをIsDate関数で判定します。
日付と判定できればWeekday関数で曜日を取得し、日曜日と土曜日それぞれでセルの背景色をColorプロパティで設定します。
使用例
SetWeekdayColor関数を実行するための呼び出し用関数を使った場合の例です。
1 2 3 |
Sub SetWeekdayColorTest() Call SetWeekdayColor(Selection) End Sub |
1. セル範囲を選択します。
2. 上の呼び出し用関数のSetWeekdayColorTestを実行します。
3. 土日部分に背景色が設定されます。