Excel VBA テクニック集
オートフィルター利用状況





Excel VBA テクニック集



シートのタイトル行に、オートフィルタの▼ボタンが表示されているかどうかを判定です。

そのためには、ワークシートのAutoFilterModeプロパティを調べます。



使い方は、ファイル一覧を使った応用の、「マクロ専用ファイル」によるマクロ実行に、下記コードを入れます。
    If Excel_App.ActiveSheet.AutoFilterMode = True Then
        MsgBox "オートフィルター有効"
        Else
        MsgBox "オートフィルター無効"
	End If
さらに、特定の条件で絞り込まれているかどうかを判定するには、ワークシートのFilterModeプロパティを調べます。

    If Excel_App.ActiveSheet.AutoFilterMode = True Then
        If Excel_App.ActiveSheet.AutoFilter.FilterMode = True Then
            MsgBox "絞り込み"
            Else
            MsgBox "絞り込みなし"
	    End If
	End If
さらに、絞り込みの内容を調べます。

Excel_App.ActiveSheet.AutoFilter.Filters.Count
は、オートフィルタの▼ボタンが表示されている、列の件数です。


Excel_App.ActiveSheet.AutoFilter.Filters(I).On = True
ならば、フィルターをかけている状態です。


フィルターをかけた列の情報を、下記により取得できます。
(フィルターをかけた列) = Excel_App.ActiveSheet.AutoFilter.Range.Columns(I).Address
(タイトルの値) = Excel_App.ActiveSheet.AutoFilter.Range(I).Value

フィルターの件数が1個ならば、Criteria1がArrayになりません。
If IsArray(Excel_App.ActiveSheet.AutoFilter.Filters(I).Criteria1) = False Then


フィルターの件数が2個以上ならば、Criteria1がArrayになります。
If IsArray(Excel_App.ActiveSheet.AutoFilter.Filters(I).Criteria1) = True Then

このときは、「For Each 〜 Next」のテクニックでフィルターの内容を調べることができます。

以上をまとめてコード化すると、下記のようになります。
    Dim Criteria_V As Variant
    For I = 1 To Excel_App.ActiveSheet.AutoFilter.Filters.Count
        If Excel_App.ActiveSheet.AutoFilter.Filters(I).On Then
            (フィルターをかけた列) = Excel_App.ActiveSheet.AutoFilter.Range.Columns(I).Address
            (タイトルの値) = Excel_App.ActiveSheet.AutoFilter.Range(I).Value
            If IsArray(Excel_App.ActiveSheet.AutoFilter.Filters(I).Criteria1) = False Then
                (フィルターの値) = Excel_App.ActiveSheet.AutoFilter.Filters(I).Criteria1
                Else
                For Each Criteria_V In Excel_App.ActiveSheet.AutoFilter.Filters(I).Criteria1
                    (フィルターの値) = Criteria_V
                    Next Criteria_V
                End If
            End If
        Next

「こだわりハウス」写真館| 数学公式集| ピンポイントストリートビュー| FaceBook| Excel Vba テクニック集| Excel 計算式解析・他解析| 富山の建築家| Excel 計算式解析・他解析| 積分の定義・積分の記号の意味の研究|