土日だけ色をつけたい!日付セルを自動で判別して塗り分けるExcelVBA【コピペOK】

ExcelVBA

「この日って土日だったっけ?」
「カレンダーやスケジュール表を見やすくしたい!」

そんなときに便利なのが、日付セルが土曜日・日曜日だった場合だけ、自動で色をつけてくれるExcel ExcelVBAコードです。

今回は、A列にある日付のセルに対して、土曜は水色、日曜はピンクで色分けするExcelVBAをご紹介します!

このExcelVBAコードはこんな人におすすめです!!

  • 予定表や勤怠表で土日を見やすくしたい方
  • カレンダーの土日だけを色分けしたい方
  • 関数や条件付き書式ではなくVBAで処理したい方
Sub ColorWeekendCells()
    Dim ws As Worksheet
    Dim rng As Range
    Dim cell As Range
    Dim lastRow As Long

    Set ws = ActiveSheet
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' A列の最終行取得
    Set rng = ws.Range("A2:A" & lastRow) ' ヘッダーを除いたA列の範囲

    For Each cell In rng
        If IsDate(cell.Value) Then
            Select Case Weekday(cell.Value, vbSunday)
                Case vbSaturday
                    cell.Interior.Color = RGB(204, 255, 255) ' 土曜:水色
                Case vbSunday
                    cell.Interior.Color = RGB(255, 204, 204) ' 日曜:ピンク
                Case Else
                    cell.Interior.ColorIndex = xlNone ' 平日は塗りつぶしなし
            End Select
        End If
    Next cell

    MsgBox "土日のセルに色を付けました!", vbInformation
End Sub
カスタマイズ例
変更点方法
チェック対象列をB列にしたいRange("A2:A" & lastRow)"B2:B" & lastRow
土日の色を変えたいRGB(…) の値を変更(例:グレーや黄色など)
平日もグレーにしたいCase Else のところで cell.Interior.Color = RGB(...) を指定
複数列で土日を判別したいFor Each col In Array("A", "B", "C") などでループ拡張

曜日判定は地味ですが、視認性とミス防止には効果絶大!

VBAなら、シートに一括処理ができるので、手間もミスも減らせます。

ぜひ、日付管理が必要なExcelに導入して、見た目も業務効率もアップさせてください。

コメント

タイトルとURLをコピーしました