【ExcelVBA】オートフィルタで文字と背景に色設定

ExcelVBA, オートフィルタ

テスト対象のテーブル



テスト対象テーブルを使いたい場合は、↓テーブルをコピーしてエクセルの A1 に貼り付けてください。



商品名個数
りんご4
みかん3
めろん5
いちご2
みかん1

オートフィルタで文字と背景に色設定

見出し行は色設定しない

Sub sample()

    Dim Target(1) As String

    Target(0) = "みかん"
    Target(1) = "りんご"

    ThisWorkbook.ActiveSheet.Range("A1").AutoFilter _
        Field:=1, _
        Criteria1:=Target, _
        Operator:=xlFilterValues
         
    With ThisWorkbook.ActiveSheet.Range("A1").CurrentRegion                  'CurrentRegion
        With .Offset(1, 0).Resize(Range("A1").CurrentRegion.Rows.Count - 1)  'CurrentRegion見出し行除外
            .Font.Color = RGB(0, 0, 255)         '文字色
            .Interior.Color = RGB(225, 255, 255) '背景色
        End With
    End With
    
End Sub
※14行目は、offsetプロパティとresizeプロパティを併用して見出し行を除外しています。

結果


結果(フィルタ解除した状態)


実行前のテーブル


見出し行も色設定する(需要なし)

Sub sample()

    Dim Target(1) As String

    Target(0) = "みかん"
    Target(1) = "りんご"

    ThisWorkbook.ActiveSheet.Range("A1").AutoFilter _
        Field:=1, _
        Criteria1:=Target, _
        Operator:=xlFilterValues
         
    With ThisWorkbook.ActiveSheet.Range("A1").CurrentRegion 'CurrentRegion
            .Font.Color = RGB(0, 0, 255)         '文字色
            .Interior.Color = RGB(225, 255, 255) '背景色
    End With
    
End Sub


結果


結果(フィルタ解除した状態)


実行前のテーブル


文字色や背景色のクリア(書式のクリア)

Sub sample()

    ThisWorkbook.ActiveSheet.Cells.ClearFormats

End Sub
※オートフィルタの設定も同時に解除されます。

結果


実行前のテーブル