【エクセルマクロ】オートフィルタで「含む」設定:7選

エクセルマクロ_オートフィルタ含む抽出_アイキャッチ ExcelVBA

エクセルマクロで、オートフィルタで特定文字を含むデータを抽出するVBAコードをご紹介します。

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

オートフィルタ「~含む」

以下のExcelVBAを実行すると、オートフィルタで特定の文字を含むデータを抽出します。


Sub オートフィルタで特定文字を含むものを抽出()

    ActiveSheet.Range("A1").CurrentRegion.AutoFilter _
            Field:=3, _
            Criteria1:="*川*"

End Sub

 

C列で「川」を含むデータのみ表示しました。

ワイルドカード(* アスタリスク)を使用して条件設定しています。

[Field:3] にて列指定します。(C列の列番号は ”3” )


 

オートフィルタ「~含む」変数使用

以下のExcelVBAを実行すると、オートフィルタで指定文字を含むデータを表示します。


Sub オートフィルタで含む条件()

Dim Target As String

    Target = "*川*"

    ActiveSheet.Range("A1").CurrentRegion.AutoFilter _
            Field:=3, _
            Criteria1:=Target

End Sub

 

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


 

オートフィルタ「~含む」セル参照

以下のExcelVBAを実行すると、セルを参照して条件設定をします。


Sub オートフィルタで任意の文字を含むデータ抽出()

Dim Target As Range

    Set Target = Range("F1")

    ActiveSheet.Range("A1").CurrentRegion.AutoFilter _
            Field:=3, _
            Criteria1:="*" & Target & "*"

End Sub

 

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


 

オートフィルタ「~含む」配列使用

以下のExcelVBAを実行すると、配列Arrayを使用してデータを絞り込みします。


Sub オートフィルタで複数条件を含むリスト抽出()

Dim Target_Word() As Variant

    Target_Word = Array("川", "福")

    ActiveSheet.Range("A1").AutoFilter Field:=3, Criteria1:= _
        "*" & Target_Word(0) & "*", _
        Operator:=xlOr, Criteria2:="*" & Target_Word(1) & "*"

End Sub

 

C列で「川」か「福」を含むデータを抽出します。

1列に2つ以上の複数条件を設定しています。


 

オートフィルタ「~含む」配列使用

以下のExcelVBAを実行すると、配列Arrayを使用してデータを絞り込みします。


Sub オートフィルタで含む複数条件()

Dim Target_Word() As Variant
Dim i As Long

    Target_Word = Array("*原*", "*福*")
    
    For i = 1 To 2
        If i = 1 Then
            ActiveSheet.Range("A1").CurrentRegion. _
                AutoFilter Field:=1, Criteria1:=Target_Word(0)
        Else
            ActiveSheet.Range("A1").CurrentRegion. _
                AutoFilter Field:=3, Criteria1:=Target_Word(1)
        End If
    Next i

End Sub

 

A列で「原」を含むデータと、C列で「福」を含むデータを抽出します。

複数列に条件設定しています。

For文を使用することで、条件によってさらに処理を追加することもできます。


 

オートフィルタ「~含む」複数条件

以下のExcelVBAを実行すると、オートフィルタで特定列に複数の文字を含むデータを表示します。


Sub オートフィルタで含むリスト抽出()

    ActiveSheet.Range("A1").AutoFilter Field:=3, Criteria1:="=*川*", _
        Operator:=xlOr, Criteria2:="=*福*"

End Sub

 

C列で「川」か「福」を含むデータを抽出します。

1列に2つ以上の複数条件を設定しています。


 

オートフィルタ「~含む」複数条件

以下のExcelVBAを実行すると、オートフィルタで特定文字を含むデータを抽出します。


Sub オートフィルタで含む複数条件()

    With ActiveSheet.Range("A1")
        .CurrentRegion.AutoFilter Field:=1, Criteria1:="*原*"
        .CurrentRegion.AutoFilter Field:=3, Criteria1:="*福*"
    End With

End Sub

 

A列で「原」を含むデータと、C列で「福」を含むデータを抽出します。

複数列に条件設定しています。


 
この記事がお役に立ちますと幸いです。
 
・【エクセルマクロ】オートフィルタ処理を自動化する使用例まとめ
 

【エクセルマクロ】オートフィルタ処理を自動化:超便利28選
...

 

「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説