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

 オートフィルタの条件には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

Exce97,l2000



戻る


Excel Word Access VBA! モーグ