空白のセルに色をぬるマクロと背景色を無しに設定するマクロ

空白のセルに色をぬる

InteriorオブジェクトのColorIndexプロパティ

空欄のセルに色

仕事の予定表や予約表などを使うときに、予定の入って無いセルを目立たせたいという場合があります。
確かに、空白が赤く塗ってあればかなり目立ちます。

(サンプルファイルは、こちらから 2010マクロ講座31回サンプルデータ

背景色を設定するInteriorオブジェクトのColorIndex

背景色を設定するには、InteriorオブジェクトのColorIndexプロパティにつけたい色の値を設定します。 シートのA1セルに赤い色を設定したいときは、コードを
Sub iro()
Worksheets("Sheet1").Range("A1").Interior.ColorIndex = 3
End Sub
のように記述すれば、A1セルの背景色を赤くすることができます。 A1などの特定のセルではなく、選択セルの背景を赤くしたいという場合は、Selectionを使って下さい。
Selection.Interior.ColorIndex = 3

空白のセルに色をぬるマクロ1

セル範囲の空白のセルだけ背景色に色をつける

セル範囲のセルの一つ一つに対して、空白ならば色をつけるという場合には、 For Each~Nextステートメントを使って指定した範囲のセル全てに同じ処理(もしも空白ならば、背景色は○)を行います。
For Each構文
「もしも~なら」の判断に使うのは、「If~Thenステートメント」です。 「If~Thenステートメント」を使うと、 論理式(条件式)を使って条件が成立した時の処理を実行することができます。
If~Thenステートメント
サンプルでは、予約表の空欄の背景色を黄色に設定します。
空白のセルに色をぬるマクロ3
コードは以下のようになります。
Sub 空欄セルに色を付ける()
    Dim 空欄 As Range
    For Each 空欄 In Range("C4:F14")
        If 空欄.Value = "" Then
            空欄.Interior.ColorIndex = 36
        End If
    Next
End Sub
コードを実行すると、空欄が黄色に塗られます。
空白のセルに色をぬるマクロ4

背景色を無しに設定するInteriorオブジェクトのColorIndex=0

さて色を塗ったら消したい場合もありますね。
消す時は何も、上記のコードのようにFor文で繰り返す必要はありません。
Interior.ColorIndex = 0 に設定する1行のコードでOKです。
Sub 選択範囲の色を消す()
    Range("C4:F14").Interior.ColorIndex = 0
End Sub

事前に選択したセルをSelectionで指定

セル範囲をSelectionで指定する方法は、直接アドレスで範囲を指定するよりも、汎用的で楽な方法です。
Sub 空欄セルに色を付ける2()
    Dim 空欄 As Range
    For Each bs In Selection
        If 空欄.Value = "" Then
            空欄.Interior.ColorIndex = 18
        End If
    Next
End Sub

ActiveCell.CurrentRegionを使う

ActiveCell.CurrentRegionを使うと、表内の1つのセルだけの選択ですみます。
Sub 空欄セルに色を付ける3()
    Dim 空欄 As Range, tr As Range
    Set tr = ActiveCell.CurrentRegion.Offset(1, 2)
    For Each 空欄 In tr.Resize(tr.Rows.Count - 1, 4)
        If 空欄.Value = "" Then
            空欄.Interior.ColorIndex = 18
        End If
    Next
End Sub
上記のコードにおいて、ActiveCellのかわりに、Range("A3")など直接指定してもいいです。
Sub 空欄セルに色を付ける4()
    Dim 空欄 As Range, tr As Range
    Set tr = Range("A3").CurrentRegion.Offset(1, 2)
    For Each 空欄 In tr.Resize(tr.Rows.Count - 1, 4)
        If 空欄.Value = "" Then
            空欄.Interior.ColorIndex = 18
        End If
    Next
End Sub