Sub GetFilterAreaAddress()
Dim ws As Worksheet ' 判定対象シート
Dim rngArea As Range ' フィルター範囲
Set ws = ActiveSheet
' フィルター行が存在するか判定
If ws.AutoFilterMode = True Then
' フィルター範囲の取得
Set rngArea = ws.AutoFilter.Range
' アドレスを通知
MsgBox "現在のフィルター範囲は " & rngArea.Address(False, False) & " です。", _
vbInformation, "Filter Area"
Else
MsgBox "このシートにはフィルターが設定されていません。", _
vbExclamation, "Filter Area"
End If
End Sub
コード解説
行
説明
6
AutoFilterMode = True のとき、見出し行にフィルター矢印が存在します。
9
ws.AutoFilter.Range により、フィルター対象となるセル範囲(見出し+データ)が Range オブジェクトとして返されます。