AutoFilter.ShowAllData メソッド
AutoFilter.ShowAllData メソッドを実行すると、オートフィルタの全ての絞り込みを解除します。(Excel 2007 以降)
【書式】
object.AutoFilter.ShowAllData
引数・戻り値
- object ・・・ 対象となる Worksheet オブジェクトを指定します。
オートフィルタの絞り込みが解除されている状態で、AutoFilter.ShowAllData メソッドを実行するとエラーが発生します。
絞り込みがされているかどうかは、FilterMode プロパティ等で確認できます。( オートフィルタの状況を確認 を参照。 )
オートフィルタの絞り込みを解除する例
サンプルVBAソース 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Sub Sample13_1_AutoFilter() 'オートフィルタの絞り込みを解除(Excel 2007以降) 'AutoFilterで絞り込まてているか確認 If ActiveSheet.FilterMode Then '全てのデータを表示する ActiveSheet.AutoFilter.ShowAllData End If End Sub |
サンプルVBAソース 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Sub Sample13_2_AutoFilter() 'オートフィルタの絞り込みを解除 'オートフィルタが設定されているか確認 If Not ActiveSheet.AutoFilter Is Nothing Then 'オートフィルタを一旦解除 Range("B3").AutoFilter 'オートフィルタを再度設定 Range("B3").AutoFilter End If End Sub |
実行結果
サンプルVBAソース(1・2)実行前
実行後
AutoFilter.Range プロパティ
AutoFilter.Range プロパティで、オートフィルタが適用されている範囲(Range オブジェクト)を取得することができます。
【書式】
object.AutoFilter.Range
引数・戻り値
- object ・・・ 対象となる Worksheet オブジェクトを指定します。
- オートフィルタが適用される範囲を表す Range オブジェクト を返します。
オートフィルタの適用範囲を取得する例
サンプルVBAソース 3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Sub Sample13_3_AutoFilter() Dim myRng As Range '指定したワークシート上にオートフィルタが設定されているかを確認 If ActiveSheet.AutoFilterMode Then 'オートフィルタの適用範囲を取得 Set myRng = ActiveSheet.AutoFilter.Range MsgBox myRng.Address End If End Sub |
実行結果
AutoFilter.Sort プロパティ
オートフィルタで、並べ替えを行うには、AutoFilter.Sort プロパティを使用します。Sort オブジェクト の詳細については、並べ替え(Sort オブジェクト, SortFields コレクション) を参照してください。
【書式】
object.AutoFilter.Sort
引数・戻り値
- object ・・・ 対象となる Worksheet オブジェクトを指定します。
- AutoFilter コレクションの並べ替え列と並べ替え順序を取得します。
絞りこまれたデータの中で、ソートが行われます。
フィルターが解除されても並べ替えは元に戻りません。
オートフィルタで、並べ替えを実行する例
サンプルVBAソース 4
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 |
Sub Sample13_4_AutoFilter() Dim myRng As Worksheet Set myRng = ActiveSheet Range("B3").AutoFilter Field:=8, _ criteria1:="10", _ Operator:=xlTop10Items With myRng.AutoFilter.Sort With .SortFields .Clear '「合計」降順で並べ替え .Add Key:=Range("I3"), _ SortOn:=xlSortOnValues, _ Order:=xlDescending, _ DataOption:=xlSortNormal '「登録番号」昇順で並べ替え .Add Key:=Range("B3"), _ SortOn:=xlSortOnValues, _ Order:=xlAscending, _ DataOption:=xlSortNormal End With .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub |
実行結果
サンプルVBAソース(4)実行前
実行後