大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、テーブルのフィルターとフィルターを解除するには、「.AutoFilter」と「.ShowAutoFilter」を使います。「見出し」を使ってフィルターすると、列を移動しても、同じVBAコードでフィルターできるので便利です。VBAでのテーブル操作をマスターしていきましょう。

はじめに

この記事では、テーブルをフィルターする方法と解除する方法について、ご紹介します。

テーブルをフィルターするには、「.AutoFilter」を使います。

オートフィルタを解除するには、「.ShowAutoFilter = False」です。

オートフィルタを解除すると、「▼」が非表示となるので、オートフィルタを設定したい場合は、「.ShowAutoFilter = True」を使います。

「見出し」を使って、テーブルをフィルターすると、列を移動しても同じVBAコードで、フィルターできるので便利です。

VBAでのテーブル操作をマスターしていきましょう。

では、テーブルをフィルターする方法と解除する方法について、解説していきます。

この記事を読むメリット

  • VBAでテーブルをフィルターする方法とフィルターを解除する方法がわかります

目次から見たい項目へ移動すると便利ですよ。

目次

テーブルのフィルターと解除

テーブルのフィルターと、フィルターの解除をやってみます。

AutoFilterでフィルターする

「AutoFilter」でフィルターするVBAコードです。

Sub TEST1()
    
    'フィルターする
    ActiveSheet.ListObjects("テーブル1").Range.AutoFilter 1, "A"
    
End Sub

テーブルを用意しておきます。

テーブルを用意

テーブルを用意しておきます

実行すると、「1」列目を、「"A"」でフィルターできます。

「1」列目を「"A"」でフィルターできた

「1」列目を、「

「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

テーブルを用意しておきます。

テーブルを用意

テーブルを用意しておきます

実行すると、「"名前"」の列を、「"A"」でフィルターできます。

「"名前"」の列を、「"A"」でフィルターできた

「

「"名前"」の列を、「"A"」でフィルターできました。

列を変更してもフィルターできる

では、列を変更して、同じVBAコードでフィルターできるかみてみます。

「"名前"」の列を、移動してみます。

「"名前"」の列を移動してみる

「

先ほどと同じVBAコードを実行してみます。

同じVBAコードでフィルターできた

同じVBAコードで、「

同じVBAコードで、「"名前"」の列を、「"A"」でフィルターできました。

こんな感じで、テーブルをフィルタしたい場合は、「見出し」を使ってフィルタすると便利です。

おわりに

この記事では、テーブルをフィルターする方法と解除する方法について、ご紹介しました。

テーブルをフィルターするには、「.AutoFilter」を使います。

オートフィルタを解除するには、「.ShowAutoFilter = False」です。

オートフィルタを解除すると、「▼」が非表示となるので、オートフィルタを設定したい場合は、「.ShowAutoFilter = True」を使います。

「見出し」を使って、テーブルをフィルターすると、列を移動しても同じVBAコードで、フィルターできるので便利です。

VBAでのテーブル操作をマスターしていきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す