Vba: オートフィルターで「次と異なる」を使用する方法
VBA のオートフィルタでは、 <>記号を使用して「等しくない」を表すことができます。
実際にこれを行う一般的な方法は次のとおりです。
SubFilterNotEqualTo ()
Range(" A1:C11 ").AutoFilter Field:=2, Criteria1:=" <>Center "
End Sub
この特定のマクロは、2 番目の列の値が「Center」と等しくない範囲A1:C11内のすべての行をフィルターします。
次の例は、この構文を実際に使用する方法を示しています。
例: VBA のオートフィルターで「差分」を使用する
さまざまなバスケットボール選手に関する情報を含む次のデータセットが Excel にあるとします。
データセットをフィルタリングして、 Position列の値が「Center」に等しくない行のみを表示するとします。
これを行うには、次のマクロを作成できます。
SubFilterNotEqualTo ()
Range(" A1:C11 ").AutoFilter Field:=2, Criteria1:=" <>Center "
End Sub
このマクロを実行すると、次の出力が表示されます。
データセットはフィルター処理され、 Position列の値が「Center」と等しくない行のみを表示していることに注意してください。
Position列の値が複数の値に等しくない行をフィルタリングすることもできることに注意してください。
たとえば、次のマクロを作成してデータセットをフィルタリングし、 Position列の値が「Center」または「Guard」に等しくない行のみを表示できます。
SubFilterNotEqualTo ()
Range(" A1:C11 ").AutoFilter Field:=2, Criteria1:=" <>Center ", Criteria2:=" <>Guard "
End Sub
このマクロを実行すると、次の出力が表示されます。
データセットがフィルタリングされて、 Position列の値が「Center」または「Guard」に等しくない行のみを表示していることに気付きました。
注: VBA AutoFilterメソッドの完全なドキュメントはここにあります。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBA: 複数の条件でオートフィルターを使用する方法
VBA: ピボット テーブルをフィルターする方法
VBA: フィルターをクリアする方法