' 選択された範囲内で、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
コメント