オートフィルタの適用範囲を調べる
通常範囲のオートフィルターが対象にしているセル範囲を表示します。
実行前に確認
- ThisWorkbook はこのコードを保存したブックです。この例はセルの値や書式を書き換えません。
- Excelテーブルの範囲を調べる場合はListObjectを使います。
1サンプルコード
Option Explicit
Sub Example1091()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")
If Not ws.AutoFilterMode Then
MsgBox "通常範囲のフィルターはありません。": Exit Sub
End If
MsgBox ws.AutoFilter.Range.Address(External:=True)
End Sub図で見る操作の流れ
イメージ図概念図:設定済みのフィルター範囲を読み取ります。
手動:準備
Sheet1の通常範囲A1:C11にフィルターを設定
マクロ:取得
フィルターの存在を確認し、AutoFilter.Rangeを読む
結果
見出しを含む範囲を、ブック・シート名付きで表示
通常範囲のフィルターがなければ終了。Excelテーブルの調査にはListObjectを使います。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
- 1
練習用ブックを .xlsm 形式で保存し、Sheet1 という名前のシートを用意します。Sheet1のA1:C11に表を用意します。1行目は見出し(A=地域、B=金額、C=日付)、2~11行目はデータです。テーブル形式ではない通常範囲で試します。先にオートフィルターを設定します。
- 2
Alt+F11でVBEを開き、[挿入]→[標準モジュール]に、この例だけを貼り付けます。
- 3
コード内の参照先や判定条件を必要に応じて変更します。実行してもセルの値や書式は変わりません。Excelに戻り、Alt+F8で Example1091 を選んで実行します。
- 4
見出しを含むフィルター範囲の番地が表示されます。