オートフィルタ(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ソース実行前
実行後
関連記事
-
列名を取得、列番号を取得(Address プロパティ,Column プロパティ)
列番号を取得する セル番地(「A1」や「B3」)や列名(「A」「B」「C」 …
-
ハイパーリンク(Hyperlinks オブジェクト)
Hyperlinks オブジェクト ワークシートまたはセル範囲のワークシートコレ …
-
行・列の表示・非表示(Hidden プロパティ)
Hidden プロパティ Hidden プロパティに True を設定することで …
-
入力規則(エラーメッセージの設定)Validation オブジェクト
無効値を入力時に、エラーメッセージの表示 Validation.ShowErro …
-
セルのアドレスを確認(Address プロパティ)
Address プロパティ Address プロパティ・AddressLocal …
-
文字列をセル幅で折り返す(WrapText プロパティ)
WrapText プロパティ WrapText プロパティは、セルに表示されてい …
-
セル・セル範囲を切り取る(Cut メソッド)
Cut メソッド Cut メソッドは、指定したセル範囲を切り取り、引数に指定した …
-
文字列の一部の書式を変更(Characters プロパティ)
文字列の一部を参照(Characters プロパティ) Characters プ …
-
セルに値を設定する・セルの値を参照する(Value プロパティ)
Value プロパティ Value プロパティは、セルの値を取得したり、値を設定 …
-
現在選択されているセルを参照(RangeSelection プロパティ)
RangeSelection プロパティ 実際に何が選択されているかにかかわらず …