子育てエンジニアブログ

子育てに励むシステムエンジニア(SE)のブログ

【Excel】【VBA】VBAで色フィルターを設定し、設定したフィルターのデータを削除するマクロ

VBAで色フィルターを設定し、設定したフィルターのデータを削除するマクロを書いてみた。
色はなんか青っぽいやつにした。

'色フィルターを設定し設定したフィルターのデータを削除しフィルターを解除する
Sub ApplyAndDeleteFilteredData()

    Dim rng As Range
    Dim lastRow As Long
    Dim lastColumn As Long
    
    ' データが入っている範囲を取得する
    With ActiveSheet
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        lastColumn = .Cells(1, .Columns.Count).End(xlToLeft).Column
        Set rng = .Range(.Cells(1, 1), .Cells(lastRow, lastColumn))
    End With
    
    ' 既存のオートフィルターをクリアする
    rng.AutoFilter
    
    ' オートフィルターを設定(背景色が黄緑色のセルのみ表示)する
    rng.AutoFilter Field:=1, Criteria1:=RGB(91, 155, 213), Operator:=xlFilterCellColor
    
    ' フィルターにマッチする行を削除する
    rng.SpecialCells(xlCellTypeVisible).EntireRow.Delete
    
    ' フィルターを解除する
    rng.AutoFilter
End Sub