【Excel VBA】セルにフィルターをかけたり外したりする方法【AutoFilter】

Excel
スポンサーリンク

今回はセルにフィルターをかけたり外したりする方法を紹介したいと思います。

スポンサーリンク

フィルターをかけたり外したりする方法

フィルターのかけ方と外し方

セルにフィルターをかけるにはAutoFilterを使用します。

Sub haribona_filter()
    'フィルターをかける
    Range("A1").AutoFilter
End Sub

例として以下の表で実行します。

フィルターをかけたり外したりする方法_1

実行するとA~D列に対してフィルターがかかります。

フィルターをかけたり外したりする方法_2

逆にフィルターを外したい時は、同じようにAutoFilterを実行すれば外すことが出来ます。

フィルターをかけたり外したりする方法_1

ちなみに上記コードではA1セルを指定していますが、範囲内であれば別のセルを指定してもフィルターをかけることが出来ます。例で言うとB1~D1セルを指定してもフィルターがかかります

Sub haribona_filter()
    '全部同じ動作
    Range("A1").AutoFilter
    Range("B1").AutoFilter
    Range("C1").AutoFilter
    Range("D1").AutoFilter
End Sub    

フィルターをかける時の注意点

フィルターをかける時の注意点として、途中にブランクになっている列があるとフィルターがうまくかからない可能性がある点が挙げられます。

例えばA~D列にデータが入っている表があったとして、C列に列を挿入してA1(もしくはB1)セルに対してAutoFilterを実行しても、A~B列までしかフィルターがかからなくなってしまいます。

フィルターをかけたり外したりする方法_2

逆にD1セルに対して実行してもD~E列にしかフィルターがかかりません。

フィルターをかけたり外したりする方法_3

要はデータが連続して入っていない場合、フィルターが途中までしかかからなくなる、と覚えておいておけばOKです。もしブランクになっている列も含めてフィルターをかけたい場合は、全ての列を指定するのが無難だと思います。

'ブランクの列も含める
Range("A1:E1").AutoFilter
スポンサーリンク

まとめ

今回はセルにフィルターをかけたり外したりする方法を紹介しました。

マクロを使ってフィルターをかけたい時は、以下3点を注意して実行するようにしましょう。

  • AutoFilterを使う
  • データが連続して入っているなら単一セルを指定してもフィルターがかかる
  • 途中でブランクの列があるなら範囲指定する

このブログではVBAに関する記事を不定期で投稿していますので、是非ご覧ください!

コメント

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