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