目次
今回は、オートフィルタの複数条件を設定する方法と色でフィルターをする方法を紹介していきます。
オートフィルタの基本的な使い方がわからない方は先にこちらの記事を参考にしてみてください。
オートフィルタの宣言方法
オートフィルタを作成する方法を紹介していきます。
対象のセル範囲.AutoFilter Field, Criteria1, Operator, Criteria2, VisibleDropDown
これで、フィルターを作成することができます。
Field:フィルターの対象となる列を指定することができます。リストの左端から 1 2 3・・・列となります。
Criteria1:フィルターの条件を指定することができます。省略することができ、省略した場合は全てが対象になります。
Operator:And条件やOr条件を指定することができます。
Criteria2:2つ目のフィルターの条件を指定することができます。
VisibleDropDown:ドロップダウンリストの表示、非表示の選択をすることができます。
Operatorの種類によってフィルターの絞り方が変わるので、一覧で紹介しておきます。
Operatorの種類 | 説明 |
xland | Criteria1とCriteria2のAnd条件でフィルターをかける |
xlBottom10Items | Criteria1で指定される値の下からトップ10を取得 |
xlBottom10Percent | Criteria1で指定される値の下位10%を取得 |
xlfiltercellcolor | セルの色を指定 |
xlfilterdynamic | 動的フィルター |
xlfilterfontcolor | フォントの色を指定 |
xlfiltericon | フィルター アイコン |
xlfiltervalues | フィルターの値 |
xlor | Criteria1とCriteria2のOr条件でフィルターをかける |
xlTop10Items | Criteria1で指定される値のトップ10を取得 |
xlTop10Percent | Criteria1で指定される値の上位10%を取得 |
複数条件を指定する方法
オートフィルタで二つの条件を組み合わせる方法を紹介していきます。
2つの条件を組み合わせるには、Criteria1,Operator,Criteria2を設定しましょう。
下記のような表を用意しました。
And条件
2つの条件を満たす値のみを表示する、And条件のやり方から見ていきましょう。
And条件を利用するには、「Operator := xlAnd」を指定しましょう。
先ほどの表から、入社日が2016/4/1から2019/4/1までの社員に絞ってみましょう。
Private Sub cmdAutoFilter_Click()
Range("A3:F10").AutoFilter 6, ">2016/4/1", xlAnd, "<2019/4/1"
End Sub
結果
Or条件
2つの条件どちらかを満たす値を表示する、Or条件のやり方から見ていきましょう。
Or条件を利用するには、「Operator := xlOr」を指定しましょう。
先ほどの表から、入社日が2015/4/2もしくは2019/4/1以降に入社した社員に絞ってみましょう。
Private Sub cmdAutoFilter_Click()
Range("A3:F10").AutoFilter 6, "2015/4/2", xlOr, ">2019/4/1"
End Sub
結果
3つ以上の値をフィルタする方法
3つ以上の値をフィルターする場合は、配列を使用しましょう。
セルの値でを絞るには、「Operator := xlFilterValues」を指定しましょう。
先ほどの表から、入社日が2015/4/2、2017/4/2、2019/4/2の社員に絞ってみましょう。
Private Sub cmdAutoFilter_Click()
Dim a(2) As String
a(0) = "2015/4/2"
a(1) = "2017/4/2"
a(2) = "2019/4/2"
Range("A3:F10").AutoFilter 6, a, xlFilterValues
End Sub
結果
セル色を指定する方法
セルの色やフォントの色でフィルターを掛ける方法を紹介します。
セルの背景を指定してフィルターを行う
セルの背景色を絞るには、「Operator := xlFilterCellColor」を指定しましょう。
セルの背景が黄色いセルに絞ってみましょう。
Private Sub cmdAutoFilter_Click()
Range("A3:F10").AutoFilter 3, RGB(255, 255, 0), xlFilterCellColor
End Sub
結果
フォントの色を指定してフィルターを行う
フォントの色を絞るには、「Operator := xlFilterFontColor」を指定しましょう。
フォントの色が赤いセルに絞ってみましょう。
Private Sub cmdAutoFilter_Click()
Range("A3:F10").AutoFilter 3, RGB(255, 0, 0), xlFilterFontColor
End Sub
結果
まとめ
今回はオートフィルタの複数条件についてまとめてきました。
オートフィルタで複数条件をするときは、And条件もしくはOr条件もしくは配列を利用した方法があります。
状況に合わせて利用しましょう。
また、基本的なやり方については、別記事があるのでそちらも参考にしてみてください。