オートフィルタ(AutoFilter メソッド)
AutoFilter メソッド
object.AutoFilter ( [ field, criteria1, operator, criteria2, visibledropdown ] )
引数・戻り値
- object ・・・ 対象となる Range オブジェクトを指定します。
- field ・・・ フィルターの対象となるフィールド番号を整数で指定します。対象となる範囲の最も左側の列(フィールド)が、フィールド番号 1 になります。
複数の列(フィールド)をまとめて扱いたい場合は、配列を指定することも可能です。
(例)field := Array(1,3,6) - criteria1 ・・・ 抽出条件となる文字列を指定します。(抽出条件 1 )
- operator ・・・ フィルターの種類を XlAutoFilterOperator 列挙型 の定数またはその値を指定します。
定数 値 内容 xlAnd 1 抽出条件 1 と抽出条件 2 の両方を満たす値(論理演算子 AND)を抽出(既定値) xlOr 2 抽出条件 1 または 抽出条件 2 のいずれかを満たす値(論理演算子 OR)を抽出 xlTop10Items 3 上位 [抽出条件 1 で指定される数] のレコードを抽出 xlBottom10Items 4 下位 [抽出条件 1 で指定される数] のレコードを抽出 xlTop10Percent 5 上位 [抽出条件 1 で指定される割合(%)] の値をもつレコードを抽出 xlBottom10Percent 6 下位 [抽出条件 1 で指定される割合(%)] の値をもつレコードを抽出 xlFilterValues 7 値(複数の値を指定したい場合は、抽出条件 1 に配列を指定します) xlFilterCellColor 8 セルの色 xlFilterFontColor 9 フォントの色 xlFilterIcon 10 アイコン xlFilterDynamic 11 動的フィルター(抽出条件 1 に、XlDynamicFilterCriteria 列挙型 の定数を指定します) - criteria2 ・・・ 2番目の抽出条件となる文字列を指定します。引数 Criteria1 および引数 Operator と組み合わせて使い、複合抽出条件を指定します。(抽出条件 2 )
- visibledropdown ・・・ True を指定すると、引数 field で指定した列(フィールド)のオートフィルターのドロップダウン矢印を表示し、False を指定すると非表示にします。既定値は True です。
xlFilterValues、xlFilterCellColor、xlFilterIcon、xlFilterFontColor、xlFilterDynamic は、Excel 2007 以降
AutoFilter メソッド 使用例 1
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
Sub Sample02_AutoFilter() With ActiveSheet.Range("$B$3:$J$26") '「合計」上位10レコードを抽出 .AutoFilter Field:=8, _ Criteria1:=12, _ Operator:=xlTop10Items '「氏名」「田」がつくレコードを抽出 .AutoFilter Field:=2, _ Criteria1:="*田*" End With '「合計」を対象に、降順で並べ替え With ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort With .SortFields .Clear .Add Key:=Range("I3:I26"), _ SortOn:=xlSortOnValues, _ Order:=xlDescending, _ DataOption:=xlSortNormal End With .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub |
実行結果
サンプルVBAソース実行前
実行後
AutoFilter メソッド 使用例 2
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Sub Sample02_2_AutoFilter() With ActiveSheet.Range("$B$3:$J$26") '「登録番号」1001,1002,1003,1004,1005 を抽出 '1つの列で3つ以上の条件を指定する場合は '「operator」に「xlFilterValues」を指定します .AutoFilter Field:=1, _ criteria1:=Array("1001", "1002", "1003", "1004", "1005"), _ Operator:=xlFilterValues End With End Sub |
実行結果
サンプルVBAソース実行前
実行後
関連記事
-
テーマカラーで網かけ(パターン)の色の取得・設定(PatternThemeColor プロパティ・PatternTintAndShade プロパティ)
PatternThemeColor プロパティ・PatternTintAndSh …
-
終端セルを参照する(End プロパティ)
End プロパティ End プロパティは、基準となるセルが含まれる領域の指定した …
-
並べ替え(Sort メソッド)
Sort メソッド 任意のセル範囲内で、並べ替えを行います。引数で、並べ替えの条 …
-
配列数式を取得または設定する(FormulaArray プロパティ)
FormulaArray プロパティ FormulaArray プロパティは、対 …
-
セルのアドレスを確認(Address プロパティ)
Address プロパティ Address プロパティ・AddressLocal …
-
ハイパーリンク(Hyperlink オブジェクト)
Hyperlink オブジェクト Hyperlinks コレクション のメンバー …
-
ハイパーリンク(Hyperlinks オブジェクト)
Hyperlinks オブジェクト ワークシートまたはセル範囲のワークシートコレ …
-
フリガナ(Phonetics プロパティ)
Phonetics プロパティ Phonetics コレクションを返します。値の …
-
ハイパーリンク(Hyperlink オブジェクトのメソッド)
Hyperlink オブジェクトのメソッド Hyperlinks コレクション …
-
列名を取得、列番号を取得(Address プロパティ,Column プロパティ)
列番号を取得する セル番地(「A1」や「B3」)や列名(「A」「B」「C」 …