AutoFilter【オートフィルター】オブジェクト
オートフィルターを表すAutoFilter【オートフィルター】オブジェクトを取得するには、Range【レンジ】オブジェクトのAutoFilter【オートフィルター】メソッドを実行して取得します。
また、オートフィルターが設定されているワークシートのオートフィルターを表すAutoFilter【オートフィルター】オブジェクトを取得するにはWorksheet【ワークシート】オブジェクトのAutoFilter【オートフィルター】プロパティを使用します。
AutoFilter【オートフィルター】プロパティ
ワークシートに設定されているオートフィルターを表すAutoFilter【オートフィルター】オブジェクトを取得するには、Worksheet【ワークシート】オブジェクトのAutoFilter【オートフィルター】プロパティを使用します。値の取得のみ可能です。
ワークシートにオートフィルターが設定されていない場合は、Noting【ナッシング】が返ります。
AutoFilter【オートフィルター】プロパティの書式と設定値の説明
オブジェクト.AutoFilter
【戻り値】AutoFilterオブジェクト
- オブジェクト(必須)
基本はオートフィルターが設定されているWorksheet【ワークシート】オブジェクトを指定します。
AutoFilter【オートフィルター】オブジェクトの主なメソッド一覧
メソッド | 内容 |
---|---|
ShowAllData 【ショーオールデータ】 | フィルターでの抽出を解除して すべてのデータを表示します。 |
AutoFilter【オートフィルター】オブジェクトの主なプロパティ一覧
プロパティ | 内容 |
---|---|
FilterMode 【フィルターモード】 | フィルターでデータが 抽出されているかいないかを返します。 |
Filters 【フィルターズ】 | フィルターの集まりを表す Filters【フィルターズ】コレクションを取得します。 |
Range 【レンジ】 | フィルターが設定されている セル範囲を取得します。 |
ShowAllData【ショーオールデータ】メソッド
オートフィルターでデータが抽出されているデータ範囲の抽出を解除して全データを表示するには、オートフィルターを表すAutoFilter【オートフィルター】オブジェクトのShowAllData【ショーオールデータ】メソッドを使用します。
ShowAllData【ショーオールデータ】メソッドの書式と設定値の説明
オブジェクト.ShowAllData
- オブジェクト(必須)
Worksheet【ワークシート】オブジェクトのAutoFilter【オートフィルター】プロパティ、またはRange【レンジ】オブジェクトのAutoFilter【オートフィルター】メソッドで取得したオートフィルターを表すAutoFilter【オートフィルター】オブジェクトを指定します。
ワークシートの絞り込まれているデータを表示するコード例
オートフィルターでデータが絞り込まれていることが前提です。
Sub 全データ表示() ActiveSheet.AutoFilter.ShowAllData End Sub
FilterMode【フィルターモード】プロパティ
オートフィルターでデータが抽出されているかいないかを調べるには、AutoFilter【オートフィルター】オブジェクトのFilterMode【フィルターモード】プロパティを使用します。
データが抽出されているされていないをブール型の値(Boolean)で返します。
戻り値 | 内容 |
---|---|
True | 抽出されています。 |
False | 抽出されていません。 |
FilterMode【フィルターモード】プロパティの書式と設定値の説明
オブジェクト.FilterMode
【戻り値】ブール型(Boolean)
- オブジェクト(必須)
Worksheet【ワークシート】オブジェクトのAutoFilter【オートフィルター】プロパティ、またはRange【レンジ】オブジェクトのAutoFilter【オートフィルター】メソッドで取得したオートフィルターを表すAutoFilter【オートフィルター】オブジェクトを指定します。
オートフィルターでデータが抽出されているかどうかを判定するコードと解説
Sub 判定() If ActiveSheet.AutoFilterMode = True Then If ActiveSheet.AutoFilter.FilterMode = True Then MsgBox "データは抽出されています。" Else MsgBox "データは抽出されていません。" End If Else MsgBox "オートフィルターが設定されていません。" End If End Sub
If【イフ】ステートメントを使用して条件分岐です。Worksheet【ワークシート】オブジェクトのAutoFilterMode【オートフィルターモード】プロパティを使用してAutoFilterMode【オートフィルターモード】プロパティの値がTrueのときつまり、ワークシートにオートフィルターが設定されているときを
定義します。次の、データが抽出されているか判定するAutoFilter【オートフィルター】オブジェクトのFilterMode【フィルターモード】プロパティはAutoFilter【オートフィルター】オブジェクトを表すオートフィルターがワークシートに設定されていないとエラーになるのでここでオートフィルターが設定されているか条件分岐をします。
3行目【If ActiveSheet.AutoFilter.FilterMode = True Then】
ワークシートにオートフィルターが設定されている場合に実行される処理です。If【イフ】ステートメントを使用して条件分岐します。Worksheet【ワークシート】オブジェクトのAutoFilter【オートフィルター】プロパティを使用してワークシートに設定されているオートフィルターを表す
AutoFilter【オートフィルター】オブジェクトを取得して、AutoFilter【オートフィルター】オブジェクトの
フィルターで抽出されているかどうかを返すFilterMode【フィルターモード】プロパティの戻り値がTrueだったときつまりフィルターでデータが抽出されているときを定義します。
4行目【MsgBox “データは抽出されています。”】
上記の条件分岐で条件が成立した場合、つまり、フィルターでデータが抽出されている場合
MsgBox関数を使用してメッセージを表示します。
5行目~6行目【Else
MsgBox “データは抽出されていません。”】
Else【エルズ】キーワードを使用して、条件が成立しなかった場合つまり、フィルターでデータが抽出されていない場合MsgBox関数を使用してメッセージを表示します。
8行目~9行目【Else
MsgBox “オートフィルターが設定されていません。”】
最初の条件分岐、つまり、オートフィルターが設定されていない場合MsgBox関数を利用してメッセージを表示します。
Filters【フィルターズ】プロパティ
オートフィルター範囲でのすべてのフィルターを表すFilters【フィルターズ】コレクションを取得するにはAutoFilter【オートフィルター】オブジェクトのFilters【フィルターズ】プロパティを使用します。
Filters【フィルターズ】プロパティの書式と設定値の説明
[]内は省略可能
オブジェクト.Filters( [Index] )
【戻り値】Filtersコレクション Indexを指定した場合はFilterオブジェクト
- オブジェクト(必須)
Worksheet【ワークシート】オブジェクトのAutoFilter【オートフィルター】プロパティ、またはRange【レンジ】オブジェクトのAutoFilter【オートフィルター】メソッドで取得したオートフィルターを表すAutoFilter【オートフィルター】オブジェクトを指定します。 - Index【インデックス】(省略可)
単体のオートフィルターのフィルターを表すFilter【フィルター】オブジェクトを取得するには、取得するフィルターの列を左から数えたインデックス番号で指定します。
Filter【フィルター】オブジェクトの主なプロパティ一覧
プロパティ | 内容 |
---|---|
Criteria1 【クライテリアワン】 | 指定したフィルターの 1つめの抽出条件の値を返します。 値の取得のみ可能です。 バリアント型(Variant) の値が返ります。 |
Criteria2 【クライテリアツゥ】 | 指定したフィルターの 2つめの抽出条件の値を返します。 値の取得のみ可能です。 バリアント型(Variant) の値が返ります。 |
On 【オン】 | フィルターで抽出されている場合はTrue 抽出されていない場合はFalseが返ります。 値の取得のみ可能です。 ブール型(Boolean)の値が返ります。 |
Range【レンジ】プロパティ
オートフィルターが設定されているセル範囲を取得するには、AutoFilter【オートフィルター】オブジェクトのRange【レンジ】プロパティを使用します。
Range【レンジ】プロパティの書式と設定値(引数)の説明
[]内は省略可能
オブジェクト.Range
【戻り値】Rangeオブジェクト
- オブジェクト(必須)
Worksheet【ワークシート】オブジェクトのAutoFilter【オートフィルター】プロパティ、またはRange【レンジ】オブジェクトのAutoFilter【オートフィルター】メソッドで取得したオートフィルターを表すAutoFilter【オートフィルター】オブジェクトを指定します。
オートフィルター設定範囲を取得するコード例
Sub フィルター範囲() If ActiveSheet.AutoFilterMode = True Then MsgBox ActiveSheet.AutoFilter.Range.Address End If End Sub
実行結果
以上で、オートフィルターを表すAutoFilterオブジェクトについての解説を終了します。
ありがとうございました。