【エクセルマクロ】オートフィルタで「含む」設定: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選
エクセルマクロで、オートフィルタ処理を自動化するVBAコードをご紹介します。どのマクロコードも、コピペで使用できます。ぜひお試しください!

 

[最速入門] ChatGPTに任せる Excelマクロ&VBA 面倒なプログラミングは秒で片づけよう

ChatGPTと対話しながら身につける、新しいVBA入門

Excelマクロ・VBAをAIと一緒にラクに習得したいなら、まず読んでおきたい一冊です!


★★★★★ 4.6 ※ Amazonカスタマーレビューより
マクロ記録とChatGPTを組み合わせた学習法が実践的で、すぐ現場で使える
「過不足のない指示」の出し方を学べ、AIとの対話スキルが身につく
変数・条件分岐・ループなどVBAの基礎もしっかり解説されている