条件に基づいてセル背景色を変更1

' 選択された範囲内で、5行目に文字が存在し、セルが結合されていない列のセルの背景色をグレーにします。

Sub prcColorSelectedColumnsGreyIfTextInRow5AndNotMerged()
    Dim rngSelected As Range
    Dim rngCell As Range
    Dim intFirstColumn As Integer
    Dim intLastColumn As Integer
    Dim intI As Integer
    Dim blnHasTextInRow5 As Boolean

    Set rngSelected = Selection ' 選択された範囲を取得
    intFirstColumn = rngSelected.Column ' 選択範囲の最初の列番号
    intLastColumn = rngSelected.Columns(rngSelected.Columns.Count).Column ' 選択範囲の最後の列番号

    ' 選択範囲の各列に対してループ
    For intI = intFirstColumn To intLastColumn
        ' 5行目に文字が存在するか判定し、セルが結合されていないかもチェック
        blnHasTextInRow5 = (Cells(5, intI).Value <> "") And Not Cells(5, intI).MergeCells

        If blnHasTextInRow5 Then
            ' 該当列の選択範囲内のセルの背景色をグレーに変更
            For Each rngCell In rngSelected.Cells
                If rngCell.Column = intI And Not rngCell.MergeCells Then
                    rngCell.Interior.Color = RGB(211, 211, 211)
                End If
            Next rngCell
        End If
    Next intI
End Sub

コメント