← コード一覧へ戻る
実務フィルター

絞り込んだ条件を調べる

通常範囲の各列について、取得できるフィルター条件をイミディエイトウィンドウへ表示します。

実行前に確認

  • ThisWorkbook はこのコードを保存したブックです。この例はセルの値や書式を書き換えません。
  • 日付グループ・色・アイコン等の条件を完全保存する例ではありません。条件の型やExcelの版により取得できない場合を明示します。

1サンプルコード

Option Explicit

Sub Example1096()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    Dim i As Long, item As Variant, criterion As Variant, f As Filter
    If Not ws.AutoFilterMode Then
        MsgBox "通常範囲のフィルターはありません。": Exit Sub
    End If
    For i = 1 To ws.AutoFilter.Filters.Count
        Set f = ws.AutoFilter.Filters(i)
        If f.On Then
            Debug.Print "列=" & i & ", Operator=" & f.Operator
            On Error Resume Next
            Err.Clear
            criterion = f.Criteria1
            If Err.Number = 0 Then
                If IsArray(criterion) Then
                    For Each item In criterion
                        Debug.Print "Criteria1:", item
                    Next item
                Else
                    Debug.Print "Criteria1:", criterion
                End If
            Else
                Debug.Print "Criteria1は取得できません。"
            End If
            Err.Clear
            criterion = f.Criteria2
            If Err.Number = 0 Then
                If IsArray(criterion) Then
                    For Each item In criterion
                        Debug.Print "Criteria2:", item
                    Next item
                Else
                    Debug.Print "Criteria2:", criterion
                End If
            Else
                Debug.Print "Criteria2は未設定、または取得できません。"
            End If
            On Error GoTo 0
        End If
    Next i
    MsgBox "VBEのCtrl+Gで出力を確認してください。"
End Sub

図で見る操作の流れ

イメージ図

コードに沿った概念図です。実際の画面や実行結果ではありません。

  1. 手動:条件を設定

    Sheet1の通常範囲にフィルター条件を設定

  2. マクロ:有効な列を調べる

    フィルターが有効な列の番号と演算子を出力

  3. マクロ:条件を出力

    Criteria1・Criteria2を取得し、配列なら要素ごとに出力

  4. 手動:出力を見る

    VBEでCtrl+Gを押してイミディエイトウィンドウを確認

通常範囲のフィルターがなければ終了。条件が未設定・取得不可ならその旨を出力します。色・日付などの条件の完全な保存ではありません。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    練習用ブックを .xlsm 形式で保存し、Sheet1 という名前のシートを用意します。Sheet1のA1:C11に表を用意します。1行目は見出し(A=地域、B=金額、C=日付)、2~11行目はデータです。テーブル形式ではない通常範囲で試します。先に条件を設定し、VBEでCtrl+Gを押して出力欄を開きます。

  2. 2

    Alt+F11でVBEを開き、[挿入]→[標準モジュール]に、この例だけを貼り付けます。

  3. 3

    コード内の参照先や判定条件を必要に応じて変更します。実行してもセルの値や書式は変わりません。Excelに戻り、Alt+F8で Example1096 を選んで実行します。

  4. 4

    有効な列番号、演算子、取得可能な条件が出力されます。

使っている機能の公式ドキュメント(Microsoft Learn)