オートフィルタ(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ソース実行前
実行後
関連記事
-
-
対象のセルが配列数式の一部かどうか(HasArray プロパティ)
HasArray プロパティ HasArray プロパティは、対象のセルが配列数 …
-
-
文字列の横位置を取得・設定する(HorizontalAlignment プロパティ)
HorizontalAlignment プロパティ HorizontalAlig …
-
-
数式を設定・取得する(Formula プロパティ・FormulaR1C1 プロパティ)
Formula プロパティ(FormulaR1C1 プロパティ) Formula …
-
-
A1 形式と R1C1 形式を変換、相対参照と絶対参照を変換(ConvertFormula)
ConvertFormula メソッド 数式で参照しているアドレスの相対参照と絶 …
-
-
セルの行番号または列番号を取得(Row プロパティ,Column プロパティ)
Row プロパティ・Column プロパティ Row プロパティは、指定したセル …
-
-
ハイパーリンク(Hyperlink オブジェクトのメソッド)
Hyperlink オブジェクトのメソッド Hyperlinks コレクション …
-
-
書式で検索(Find メソッド,FindFormat プロパティ)
書式で検索 書式を条件にセルを検索する場合、まず、その書式条件を CellFor …
-
-
文字の向きを表す値を取得・設定する(Orientation プロパティ)
Orientation プロパティ Orientation プロパティで、文字列 …
-
-
セル内部を参照(Interior プロパティ)
Interior プロパティ Interior プロパティで、セルの内部を参照し …
-
-
セルを削除する(Delete メソッド)
Delete メソッド Delete メソッドで、指定したセル・セル範囲を削除し …