2つの条件でデータを抽出する(AutoFilter) : Excel

Excel VBAでAutoFilterメソッドを使い、二つの条件で抽出するには、引数の Criteria1 と Criteria2 に設定します。
そして、抽出の方法を、Operator に xlAnd か xlOR のどちらかを指定します。

構文 : Rangeオブジェクト.AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown)

 Field - フィルタの対象となる列番号を整数で指定します。左側から始まり、最も左側にある列は 1 になります。
 Criteria1 - 抽出条件となる文字列を指定します。省略すると、抽出条件はなしになります。
 Operator - フィルタの種類を指定します。
 Criteria2 - 2番目の抽出条件となる文字列を指定します。
 VisibleDropDown - オートフィルタのドロップダウン矢印を表示する場合はTrue、非表示の場合はFalseを指定します。

Operatorの定数 :
 xlAnd - Criteria1の条件とCriteria2の条件の両方を満たすデータを抽出
 xlOr - Criteria1の条件かCriteria2のいずれかの条件を満たすデータを抽出


Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ

Excel実行画面

抽出画面
AND か OR のどちらで抽出するかを、オプションボタンで選択します。
市町村名の抽出ソフト

市町村の名前に「田」と「町」がつく条件で抽出
ANDで抽出


市町村の名前に「田」か「町」がつく条件で抽出
ORで抽出

Excel VBA実行コード

'人口と市町村につく名前で抽出
Private Sub CommandButton1_Click()
    If Range("B2") = "" Then
        MsgBox "B2に抽出する文字を入力してください。"
        Exit Sub
    End If
    
    If Range("B2") = "" Then
        MsgBox "B4に抽出する文字を入力してください。"
        Exit Sub
    End If
    
    If OptionButton1.Value = True Then
        'ANDで抽出
       Range("A6").AutoFilter 1, "*" + Range("B2") + "*", xlAnd, "*" + Range("B4") + "*"
    Else
        'ORで抽出
       Range("A6").AutoFilter 1, "*" + Range("B2") + "*", xlOr, "*" + Range("B4") + "*"
    End If
       
End Sub

'オートフィルタを解除する
Private Sub CommandButton2_Click()
    AutoFilterMode = False
End Sub



Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved