【エクセルマクロ】オートフィルタで除外設定:9つの使用例を紹介するよ

エクセルマクロ:オートフィルタで除外を設定 アイキャッチ エクセルマクロで効率化する

エクセルマクロで、オートフィルタで除外設定をするVBAコードをご紹介します。

除外したい条件を指定して、表示するデータを絞り込みます。

このページのマクロコードは、コピペで使えます。
せひ、お試しください。

オートフィルタ「~以外」

以下のマクロを実行すると、オートフィルタで除外データを設定します。

Sub オートフィルタで除外を設定()

    ActiveSheet.Range("A1").CurrentRegion.AutoFilter _
            Field:=4, _
            Criteria1:="<>AB型"
            
End Sub

 

マクロ実行前

D列で「AB型以外」のデータを抽出する前の表示です。


 

マクロ実行後

D列で「AB型以外」のデータを抽出した後の表示です。

[Field:4] にて列指定します。(D列の列番号は ”4” )
[Criteria1:=”< >AB型”] は、不等号を使用して「AB型と等しくない」という設定をしています。


 
 

オートフィルタ「~以外」変数使用

以下のマクロを実行すると、オートフィルタで特定文字を除くデータを抽出します。

Sub オートフィルタで除外を設定()

    Dim Target As String
    
    Target = "AB型"
 
    ActiveSheet.Range("A1").CurrentRegion.AutoFilter _
            Field:=4, _
            Criteria1:="<>" & Target
             
End Sub

フィルターの条件に、変数を使用したパターンです。
 
 

オートフィルタ「~以外」セル参照

以下のマクロを実行すると、オートフィルタで特定文字を除くデータを抽出します。

Sub オートフィルタで除外をセル参照で指定()

    Dim Target As Range
    
    Set Target = Range("G1")
    
    ActiveSheet.Range("A1").CurrentRegion.AutoFilter _
            Field:=4, _
            Criteria1:="<>" & Target
             
End Sub

 

フィルターの条件に、セル参照をしているパターンです。


 
 

オートフィルタ「~以外」色を判定

以下のマクロを実行すると、オートフィルタで背景色が付いているセルを除外します。

Sub オートフィルタで背景色なしを抽出()

    ActiveSheet.Range("A1").CurrentRegion.AutoFilter _
            Field:=2, _
            Operator:=xlFilterNoFill
             
End Sub

 

B列で背景色がついているデータ以外を抽出しました。


 
 

オートフィルタ「~以外」取消線を判定

以下のマクロを実行すると、オートフィルタで取り消し線がついていないセルを除外します。

Sub 取り消し線がついていないデータのみフィルタ抽出()

Dim LastRow As Long
Dim i As Long

    'D列の最終行を取得
    LastRow = Cells(Rows.Count, 4).End(xlUp).Row
    
    'D列をループ
    For i = 1 To LastRow
        
        '取消線が引いてあるかチェック
        If Cells(i, 4).Font.Strikethrough = True Then
        
            'セルの背景色を黄色にする
            Cells(i, 4).Interior.Color = 65535

        End If
    
    Next i

    '黄色セルのみフィルタ抽出 (取り消し線を引いたセル)
    Range("A1").AutoFilter Field:=4, Criteria1:=RGB(255, _
        255, 0), Operator:=xlFilterCellColor
    
End Sub

 

D列で取消線がついていないセル以外を抽出しました。

オートフィルタの機能では、取り消し線の有無の判定ができなようなので、
マクロで取り消し線が付いているセルに色をつけてから、色つきのセルをフィルタ抽出しています。


 
 

オートフィルタ「~以外」太文字を判定

以下のマクロを実行すると、オートフィルタで太文字になっていないセルを除外します。

Sub 太文字以外を除外してフィルタ抽出()
 
Dim LastRow As Long
Dim c As Range
 
    'B列の最終行を取得
    LastRow = Cells(Rows.Count, 2).End(xlUp).Row
     
    'B列をループ
    For Each c In Range("B2:B" & LastRow)
         
        '太文字かチェック
        If c.Font.Bold = True Then
         
            'セルの背景色を黄色にする
            c.Interior.Color = 65535
 
        End If
     
    Next c
 
    '黄色セルのみフィルタ抽出 (太文字になっているセル)
    Range("A1").AutoFilter Field:=2, Criteria1:=RGB(255, _
        255, 0), Operator:=xlFilterCellColor
     
End Sub

 

B列で太文字になっていないセル以外を抽出しました。

オートフィルタの機能では、太文字の有無の判定ができなようなので、
マクロで太文字になっているセルに色をつけてから、色つきのセルをフィルタ抽出しています。


 
 

オートフィルタ「~を含まない」

以下のマクロを実行すると、オートフィルタで除外データを設定します。

Sub オートフィルタで除外を設定()

    ActiveSheet.Range("A1").CurrentRegion.AutoFilter _
            Field:=4, _
            Criteria1:="<>*A*"
            
End Sub

 

マクロ実行後

D列で「Aを含まない」データを抽出した後の表示です。

[Criteria1:=”< >*A*”] は、「Aを含まない」という設定をしています。
ワイルドカードであるアスタリスク「*」を使っています。


 
 

オートフィルタ「複数条件」特定の列

以下のマクロを実行すると、オートフィルタで特定列に複数の除外データを設定します。

Sub オートフィルタで除外を設定()

    ActiveSheet.Range("A1").CurrentRegion.AutoFilter _
            Field:=4, _
            Criteria1:="<>AB型", Operator:=xlAnd, Criteria2:="<>B型"
            
End Sub

 

マクロ実行後

D列で「AB型以外」と「B型以外」のデータを抽出した後の表示です。
1列に2つ以上の複数条件を設定しています。


 
 

オートフィルタ「複数条件」複数の列

以下のマクロを実行すると、オートフィルタで複数列に除外データを設定します。

Sub オートフィルタで複数列に除外データを設定()

    With ActiveSheet.Range("A1")
        .CurrentRegion.AutoFilter Field:=3, Criteria1:="<>女"
        .CurrentRegion.AutoFilter Field:=4, Criteria1:="<>O型"
    End With
    
End Sub

 

マクロ実行後

C列に「女以外」と、D列に「O型以外」の抽出条件を設定しました。
複数列に除外データの条件を設定しています。


 
 

【エクセルマクロ】オートフィルタで空白以外を抽出:1行コード
...