【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 を返します。この状態で実行した判定結果が下になります。
結果
実行前のテーブル
ディスカッション
コメント一覧
まだ、コメントがありません