オートフィルタで複数条件をセットする

Sub prcApplyAutoFilterAndColor()
    Dim ws As Worksheet
    Dim rng As Range
    Dim lastRow As Long
    Dim visibleCells As Range

    ' シートの設定
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    With ws
        ' 既存のフィルタを解除
        If .AutoFilterMode Then .AutoFilterMode = False
        
        ' データ範囲の設定(A列の最終行を基に)
        lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        Set rng = .Range("A1:C" & lastRow)
        
        ' オートフィルタの設定: A列=空白, B列="あいう"
        rng.AutoFilter Field:=1, Criteria1:=""
        rng.AutoFilter Field:=2, Criteria1:="あいう"
        
        ' 抽出されたレコードのC列の背景色を赤に設定
        On Error Resume Next
        Set visibleCells = rng.Offset(1, 0).Resize(rng.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Columns(3)
        On Error GoTo 0
        
        If Not visibleCells Is Nothing Then
            visibleCells.Interior.Color = 16711680 ' 赤色に設定
        End If
    End With
End Sub

コメント