まりふのひと

Excel/フィルターで「を含む」で絞り込むマクロ(2条件)

    1. Sub まめ録絞り込み()
    2. Dim mbTitle As String
    3. Dim varAns As Variant
    4. Dim strFilter1 As String, strFilter2 As String
    5.  
    6. mbTitle = "まめ録絞り込み/" & ThisWorkbook.Name
    7. 'フィルターをオンにする。
    8. If ActiveSheet.AutoFilterMode = False Then Range("A1").AutoFilter
    9. 'クリアする。
    10. If ActiveSheet.AutoFilter.FilterMode Then ActiveSheet.ShowAllData
    11.  
    12. strFilter1 = InputBox("絞り込むキーワードを入力してください。", mbTitle)
    13. If strFilter1 = "" Then Exit Sub
    14. strFilter2 = InputBox("or 条件のキーワードを入力してください。", mbTitle)
    15.  
    16. If strFilter2 = "" Then
    17. Range("A1").CurrentRegion.AutoFilter Field:=7, Criteria1:="=*" & strFilter1 & "*"
    18. Else
    19. Range("A1").CurrentRegion.AutoFilter Field:=7, Criteria1:="=*" & strFilter1 & "*" _
    20. , Operator:=xlOr, Criteria2:="=*" & strFilter2 & "*"
    21. End If
    22.  
    23. End Sub
§オートフィルタの状況を調べる (Office TANAKA)より引用

Office TANAKA のコードを参考に、Excel2010で確認した。

  1. オートフィルタを設定する。
    • Range("A1").AutoFilter
  2. オートフィルタを解除するには、もう一度 AutoFilterメソッドを実行する。
    • Range("A1").AutoFilter
  3. オートフィルタが設定されているか否かの判定
    • ActiveSheet.AutoFilterMode が True であれば設定されている。
  4. G列を“Word”を含む で絞り込む
    • Range("A1").CurrentRegion.AutoFilter Field:=7, Criteria1:="=*Word*"
  5. G列を“Word”または“ワード”を含む で絞り込む
    • Range("A1").CurrentRegion.AutoFilter Field:=7, Criteria1:="=*Word*", Operator:=xlOr, Criteria2:="=*ワード*"
  6. オートフィルターで絞り込まれているか否かの判定
    • ActiveSheet.AutoFilter.FilterMode が True であれば絞り込まれている。
  7. 絞り込みを[クリア]する
    • ActiveSheet.ShowAllData