ExcelマクロVBA入門 | 第89回.オートフィルタ(AutoFilter) | Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説



最終更新日:2013-09-04

第89回.オートフィルタ(AutoFilter)


まずは、オートフィルタを適用したり解除したりする場合です。


Range.AutoFilterメソッド


Range.AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown)

Field フィルターの対象となるフィールド番号を整数で指定します。フィールド番号は、リストの左側から始まります。つまり、最も左側にあるフィールドはフィールド番号 1 になります。
Criteria1 抽出条件となる文字列 ("101" など) を指定します。"=" と指定すると、空白セルが抽出され、"<>" と指定すると空白以外のフィールドが抽出されます。この引数を省略すると、抽出条件は All になります。引数 Operator に xlTop10Items が指定されている場合は、引数 Criteria1 に項目数を指定します (たとえば "10")。
Operator

フィルターの種類を XlAutoFilterOperator クラスの定数のいずれかで指定します。

xlAnd 抽出条件 1 と抽出条件 2 の論理演算子 AND
xlBottom10Items 表示される最低値項目 (抽出条件 1 で指定される項目数)
xlBottom10Percent 表示される最低値項目 (抽出条件 1 で指定される割合)
xlFilterCellColor セルの色
xlFilterDynamic 動的フィルター
xlFilterFontColor フォントの色
xlFilterIcon フィルター アイコン
xlFilterValues フィルターの値
xlOr 抽出条件 1 または抽出条件 2 の論理演算子 OR
xlTop10Items 表示される最高値項目 (抽出条件 1 で指定される項目数)
xlTop10Percent 表示される最高値項目 (抽出条件 1 で指定される割合)
Criteria2 2 番目の抽出条件となる文字列を指定します。引数 Criteria1 および引数 Operator と組み合わせて使い、複合抽出条件を指定します。
VisibleDropDown True を指定すると、フィルターのフィールドにあるオートフィルターのドロップダウン矢印を表示します。False を指定すると、フィルターのフィールドにオートフィルターのドロップダウン矢印を非表示にします。既定値は True です。


すべての引数を省略すると、このメソッドは指定したセル範囲でのオートフィルターのドロップダウン矢印を表示します。

既に、オートフィルターのドロップダウン矢印を表示されている場合は、これを解除します。



使用例.


Range("A1").AutoFilter Field:=1, Criteria1:="1", Operator:=xlFilterValues


A1のアクティブ セル領域にオートフィルタを設定し、1列(A列)を"1"で絞り込みます。



オートフィルタの操作


シートに設定されているオートフィルタの情報取得設定


AutoFilterオブジェクト


AutoFilterオブジェクトのプロパティ・メソッド

メソッド ApplyFilter 指定された Autofilter オブジェクトを適用します。
ShowAllData AutoFilter オブジェクトから返されるデータをすべて表示します。
プロパティ Application 対象となるオブジェクトが指定されない場合は、Excel アプリケーション (Application オブジェクト) を返します。対象となるオブジェクトが指定された場合は、指定されたオブジェクトを作成した Application オブジェクトを返します。OLE オートメーションを使っていて、オブジェクトのアプリケーションにアクセスするときなどに、このプロパティを使います。値の取得のみ可能です。
Creator 現在のオブジェクトが作成されたアプリケーションを示す 32 ビットの整数を取得します。値の取得のみ可能です。長整数型 (Long) の値を使用します。
FilterMode ワークシートがオートフィルター フィルター モードの場合、True を返します。値の取得のみ可能です。ブール型 (Boolean) の値を使用します。
Filters オートフィルター範囲でのすべてのフィルターを表す Filters コレクションを返します。値の取得のみ可能です。
Parent 指定されたオブジェクトの親オブジェクトを取得します。値の取得のみ可能です。
Range 指定された AutoFilter の適用先の範囲を表す Range オブジェクトを返します。
Sort AutoFilter コレクションの並べ替え列と並べ替え順序を取得します。




AutoFilterModeプロパティ

ワークシートのプロパティに、AutoFilterModeプロパティがあります。


True : シートにオートフィルターの下向き矢印を表示します。

False : シートにオートフィルターの下向き矢印を消します。




使用例.

With Sheets("Sheet1")
  .Range("A1").AutoFilter Field:=1, Criteria1:="1"
  .Range("A1").CurrentRegion.Copy
  Sheets("Sheet2").Range("A1").PasteSpecial Paste:=xlPasteValues
  .AutoFilterMode = False
End With
Application.CutCopyMode = False


Sheet1のA1のアクティブ セル領域の、1列目を"1"で絞り込み、


Sheet2へコピーしています。


.AutoFilterMode = Falseは、.Range("A1").AutoFilterでも同じです。

Dim i As Long, Title As String
With ActiveSheet
  If .AutoFilterMode Then
    For i = 1 To .AutoFilter.Filters.Count
      If .AutoFilter.Filters(i).On Then
        .AutoFilter.ShowAllData
        Exit For
      End If
    Next i
  End If
End With


オートフィルタで絞り込まれている場合、絞り込みを解除し全て表示しています。



いろいろなフィルタ


特に日付の場合は、非常に面倒です。


以下を参考にして下さい。


「マクロの記録で覚えるVBA」第18回.オートフィルタ


「マクロの記録で覚えるVBA」第19回.オートフィルタ2






同じテーマ「ExcelマクロVBA入門」の記事

第90回.フィルタオプションの設定(AdvancedFilter)
第91回.条件付き書式(FormatCondition)
第92回.名前定義(Names)
第93回.ピボットテーブル(PivotTable)
第94回.コメント(Comment)
第95回.ハイパーリンク(Hyperlink)
第96回.グラフ(Chart)

新着記事 ・・・新着記事一覧を見る

スプレッドシートが非常に遅い、高速化するには|Google Apps Script入門(1月17日)
画像のトリミング(PictureFormat,Crop)|ExcelマクロVBAサンプル集(12月27日)
シート保護|Google Apps Script入門(12月24日)
表示の固定|Google Apps Script入門(12月24日)
グラフ|Google Apps Script入門(12月21日)
入力規則|Google Apps Script入門(12月13日)
並べ替え|Google Apps Script入門(12月12日)
メモの挿入・削除と改行文字|Google Apps Script入門(12月6日)
リンクの挿入・編集・削除|Google Apps Script入門(12月6日)
セルに数式を入れる|Google Apps Script入門(12月1日)

アクセスランキング ・・・ ランキング一覧を見る

1.RangeとCellsの使い方|ExcelマクロVBA入門
2.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
3.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
6.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
7.ひらがな⇔カタカナの変換|エクセル基本操作
8.CSVの読み込み方法|ExcelマクロVBAサンプル集
9.変数とデータ型(Dim)|ExcelマクロVBA入門
10.VBAのFindメソッドの使い方には注意が必要です|ExcelマクロVBA技術解説



  • >
  • >
  • >
  • オートフィルタ(AutoFilter)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。

    ↑ PAGE TOP