ワークシート内にオートフィルターが設定してあるかどうか調べる場合、 AutoFilterMode プロパティを使用します。値が True であればオートフィルターが設定してあり、False であれば設定してないと判別します。
値の設定については少し特殊で False(オートフィルター解除) のみ設定が可能です。オートフィルターを設定したい場合は対象のセル範囲に対して AutoFilter メソッド を使用します。
AutoFilterModeプロパティの使用方法
AutoFilterModeプロパティの使用例
オートフィルターの設定
ワークシートにオートフィルターが設定されていない場合に、セル範囲A3~F3に対してオートフィルターを設定する例です。
Sub sample_eb078_01()
With ActiveSheet
If Not .AutoFilterMode Then
.Range("A3:F3").AutoFilter
End If
End With
End Sub
マクロ実行前はオートフィルタが設定されていません。
マクロを実行すると、A3~F3にオートフィルターが設定されました。
オートフィルターの解除
オートフィルターを解除するには False を設定します。
Sub sample_eb078_02()
ActiveSheet.AutoFilterMode = False
End Sub