_基本ExcelVBA

オートフィルタを解除する【AutoFilterメソッド】【ExcelVBA】

オートフィルタの解除について

AutoFilterメソッドの引数を指定しなければ、オートフィルタの ON/OFF を切り替えられます。

オートフィルタを設定したとき、VisibleDropDown を Falseに設定し実行後に
ShowAllDataメソッドでデータを全表示にした場合にも実質オートフィルタが解除されます。

少し複雑になるので単純にオートフィルタをOFFにしたいときは、
AutoFilterメソッドの引数を指定しない方が簡潔に済みます。

 

解除の違いを確認できるサンプルコード

以下をA1セルに貼り付けてください。

aaa
a
b
Public Sub Sample()
  'オートフィルタを設定する
  Range("A1").AutoFilter Field:=1, Criteria1:="a"
  
  'データを全て表示する
  ActiveSheet.ShowAllData
  
  '矢印を非表示にしてオートフィルタを設定する
  Range("A1").AutoFilter Field:=1, Criteria1:="a", VisibleDropDown:=False
  
  '■オートフィルタをOFFにする
  Range("A1").AutoFilter
  'オートフィルタをONにする
  Range("A1").AutoFilter

End Sub

 

注意点

  • 引数無しのAutoFilterメソッドを連続で実行すると、ON/OFF が交互に切り替わります。
    (ONならOFFに、OFFならONに)
    ※ただし、絞り込み条件等は設定されません

 

関連記事

コメント

タイトルとURLをコピーしました