HOME > 即効テクニック > Excel VBA > その他関連のテクニック > オートフィルタに設定した条件の取得

即効テクニック

その他関連のテクニック

オートフィルタに設定した条件の取得

(Excel 97/2000)
オートフィルタの条件にはCriteria1,Criateria2,Operatorプロパティーなどを使用します。サンプルではこれらのプロパティーを利用してシート上のオートフィルタに既に設定されている抽出条件を取得します。
Sub GetCriteria()

If ActiveSheet.AutoFilter Is Nothing then Exit Sub

Dim CntCol As Integer
Dim i As Long
Dim Op As String
Dim Result As String

With ActiveSheet.AutoFilter
CntCol = .Filters.Count

For i = 1 To CntCol

    On Error Resume Next 'エラー回避
    
    '列ごとにフィルタがOnの場合に条件取得
    If .Filters(i).On = True Then
    Result = Result & i & "番目の項目:" & .Filters(i).Criteria1
    Result = Result & ":" & .Filters(i).Criteria2

    Op = "   条件 : "
    'Operatorに指定されている条件の取得
    '使用できる定数は⇒XlAutoFilterOperatorクラス
    Select Case .Filters(i).Operator
        Case xlAnd: Op = Op & "AND"
        Case xlBottom10Items: Op = Op & "Bottom"
        Case xlBottom10Percent: Op = Op & "Bottom(%)"
        Case xlOr: Op = "OR"
        Case xlTop10Items: Op = Op & "Top"
        Case xlTop10Percent: Op = Op & "Top(%)"
    End Select

    Result = Result & Op & vbCrLf
    Op = ""
    End If

Next i

End With

MsgBox Result

End Sub