Sub TEST1()
'フィルターする
ActiveSheet.ListObjects("テーブル1").Range.AutoFilter 1, "A"
End Sub
テーブルを用意しておきます。
テーブルを用意
実行すると、「1」列目を、「"A"」でフィルターできます。
「1」列目を「"A"」でフィルターできた
「1」列目を、「"A"」でフィルターできました。
ShowAutoFilterでオートフィルタを解除
「ShowAutoFilter」でオートフィルタを解除するVBAコードです。
Sub TEST2()
'オートフィルタを解除
ActiveSheet.ListObjects("テーブル1").ShowAutoFilter = False
End Sub
テーブルをフィルターしておきます。
フィルターしたテーブル
実行すると、フィルターを解除して、オートフィルタを解除できます。
オートフィルタを解除できた
フィルターを解除して、オートフィルタを解除できました。
ShowAutoFilterでオートフィルタを設定
「ShowAutoFilter」でオートフィルタを設定してみます。
入力を「True」にするとできます。
Sub TEST3()
'オートフィルタを設定
ActiveSheet.ListObjects("テーブル1").ShowAutoFilter = True
End Sub
テーブルのオートフィルタを、未設定にしておきます。
オートフィルタが未設定のテーブル
実行すると、テーブルのオートフィルタを設定できます。
オートフィルタを設定できた
テーブルのオートフィルタを設定できました。
フィルターを解除してオートフィルタは設定する
フィルターを解除して、オートフィルタは設定する、VBAコードです。
最初に「False」を入力して、次に「True」を入力する、という流れです。
Sub TEST4()
'オートフィルタを解除
ActiveSheet.ListObjects("テーブル1").ShowAutoFilter = False
'オートフィルタを設定
ActiveSheet.ListObjects("テーブル1").ShowAutoFilter = True
End Sub
「With」でくくっておきます。
Sub TEST5()
With ActiveSheet.ListObjects("テーブル1")
.ShowAutoFilter = False 'オートフィルタを解除
.ShowAutoFilter = True 'オートフィルタを設定
End With
End Sub
テーブルをフィルターしておきます。
テーブルをフィルターしておく
実行すると、テーブルのフィルターを解除して、オートフィルタは設定できます。
フィルターを解除してオートフィルタは設定できた
テーブルのフィルターを解除して、オートフィルタは設定できました。
見出しを使ってフィルターすると便利
「見出し」を使ってフィルターすると、列を移動しても同じVBAコードで動くので、便利です。
見出しを使ってフィルターする
「見出し」を使ってフィルターしてみます。
「.ListColumns(見出し名).Index」を使います。
Sub TEST6()
With ActiveSheet.ListObjects("テーブル1")
'見出しを使ってフィルターする
.Range.AutoFilter .ListColumns("名前").Index, "A"
End With
End Sub