For Each … Nextで条件分岐してセルの塗りつぶしをする

Excel VBA For Each…Next

For Each…NextでFlag(フラグ)をつかってセルの表示形式を調べて分岐処理を行い、セルの塗りつぶしをするコードを紹介します。

Sub 表示形式が標準のセルを水色で塗りつぶす()

Dim search_Cell As Range
Dim Flag As Boolean

For Each search_Cell In Range("A1:G21")

If search_Cell.NumberFormatLocal = "G/標準" Then '表示形式が標準の場合は。

search_Cell.Interior.ColorIndex = 8 'セルを水色で塗りつぶします。
Flag = True

End If

Next search_Cell

If Flag = True Then 'ループ終了後にメッセージを表示します。

MsgBox "セルの書式設定の表示形式が「標準」のセルを水色で塗りつぶしました。"

Else

MsgBox "セルの書式設定の表示形式が「標準」のセルはありません。"

End If

End Sub

指定したセル範囲内の表示形式を右から左に調べていき、条件によってセルの塗りつぶしを行うプログラムですが、条件式を変更すればいろいろなセル操作をすることができます。