【ExcelVBA】オートフィルタの設定がされているかを判定する
テスト対象のテーブル

テスト対象テーブルを使いたい場合は、↓テーブルをコピーしてエクセルの A1 に貼り付けてください。
| 商品名 | 個数 |
|---|---|
| りんご | 4 |
| みかん | 3 |
| めろん | 5 |
| いちご | 2 |
| みかん | 1 |
オートフィルタ設定がされているこを判定する
オートフィルタ設定がある状態で判定
Sub Sample()
'オートフィルタ設定
ThisWorkbook.ActiveSheet.Range("A1").AutoFilter
'絞られているか判定
If ThisWorkbook.ActiveSheet.AutoFilterMode = True Then
MsgBox "フィルタ設定あり!"
Else
MsgBox "フィルタ設定ナシ!"
End If
'オートフィルタ解除
ThisWorkbook.ActiveSheet.AutoFilterMode = False
End Sub
4行目のオートフィルタ設定がされていると、7行目の AutoFilterMode プロパティは True を返し、されていないときは False を返します。上記例は True を返します。判定結果は下になります。
結果

実行前のテーブル

オートフィルタ設定がナシの状態で判定
Sub Sample()
'オートフィルタ設定
'ThisWorkbook.ActiveSheet.Range("A1").AutoFilter
'絞られているか判定
If ThisWorkbook.ActiveSheet.AutoFilterMode = True Then
MsgBox "フィルタ設定あり!"
Else
MsgBox "フィルタ設定ナシ!"
End If
'オートフィルタ解除
ThisWorkbook.ActiveSheet.AutoFilterMode = False
End Sub
4行目のオートフィルタ設定をコメントアウトしました。オートフィルタ設定がされていない状態のため、7行目の AutoFilterMode プロパティは False を返します。この状態で実行した判定結果が下になります。
結果

実行前のテーブル





ディスカッション
コメント一覧
まだ、コメントがありません