Excel VBA オートフィルターの矢印を操作する

スポンサーリンク

オートフィルターの矢印を特定の列だけにする方法

オートフィルター範囲の見出し行には、フィルター矢印が表示されます。フィルター操作を行う場合は便利ですが、操作を行わない列にまで表示されていると列見出しが見にくい場合があります。

ここでは、操作した列見出しのみフィルター矢印を表示する方法について、ご紹介します。

オートフィルター矢印は、AutoFilter【オートフィルター】メソッドの矢印の表示、非表示を設定する
引数VisibleDropDown【ビジブルドロップダウン】に「True(表示)/ False(非表示)」を指定して矢印の表示と非表示を切り替えます。

2列目の地区でA地区を抽出し矢印を2列目だけに表示する例

コードと解説

Sub 特定矢印()
ActiveSheet.AutoFilterMode = False
Dim セル範囲 As Range
Dim i As Long
Set セル範囲 = Range("A1").CurrentRegion
With セル範囲
For i = 1 To .Columns.Count
.AutoFilter Field:=i, VisibleDropDown:=False
Next i
.AutoFilter Field:=2, Criteria1:="A地区", VisibleDropDown:=True
End With
End Sub
2行目【ActiveSheet.AutoFilterMode = False】
Worksheet【ワークシート】オブジェクトのAutoFilterMode【オートフィルターモード】プロパティにFalseを設定してオートフィルターモードを解除します。


3行目【Dim セル範囲 As Range】
データの範囲を格納する変数「セル範囲」をオブジェクト型(Range)で宣言します。


4行目【Dim i As Long】
繰り返し処理で使用するAutoFilter【オートフィルター】メソッドの抽出する列を表す引数Field【フィールド】の値を格納するカウンター変数「i」を長整数型(Long)で宣言します。


5行目【Set セル範囲 = Range(“A1”).CurrentRegion】
Range【レンジ】オブジェクトのCurrentRegion【カレントリージョン】プロパティを使用して、A1セルから始まるデータ範囲を参照し、オブジェクト変数「セル範囲」にSetキーワードを使用して代入します。


6行目【With セル範囲】
データ範囲が格納されているオブジェクト変数「セル範囲」をWith【ウィズ】ステートメントで指定します。


7行目【For i = 1 To .Columns.Count】
For Next【フォアネクスト】ステートメントを使用して繰り返し処理の始まりです。カウンター変数「i」に1からWith【ウィズ】ステートメントで指定したデータ範囲のColumns 【カラムス】(行)に対してCount【カウント】プロパティで列数を取得します。つまり、カウンター変数「i」に繰り返し処理の中で順に1~データ範囲の最終列番号を代入します。


8行目【.AutoFilter Field:=i, VisibleDropDown:=False】
With【ウィズ】ステートメントで指定したデータ範囲にAutoFilter【オートフィルター】メソッドを使用します。

抽出対象の列を表す引数Field【フィールド】には、カウンター変数「i」を設定します。

矢印の表示、非表示の切り替えを表す引数VisibleDropDown【ビジブルダウン】にFalseを設定して矢印を非表示に設定します。つまり、データ範囲のすべての列を参照して矢印を非表示に設定しています。


10行目【.AutoFilter Field:=2, Criteria1:=”A地区”, VisibleDropDown:=True】
With【ウィズ】ステートメントで指定したデータ範囲のAutoFilter【オートフィルター】メソッドを使用します。抽出対象の列を表す引数Field【フィールド】には2列目を表す2を設定します。1つめの抽出条件となる文字列を表す引数Criteria1【クライテイリアワン】にはA地区を設定し矢印の表示、非表示の切り替えを表す引数VisibleDropDown【ビジブルダウン】にTrueを設定して非表示にしていた矢印を表示します。


フィルター矢印を解除せすに全データを表示する方法

オートフィルターでデータが絞り込まれているデータ範囲に対して絞り込みを解除して全データを表示するとフィルター矢印も解除されますがフィルター矢印を表示したまま、データの絞り込みを解除するには、Worksheet【ワークシート】オブジェクトのShowAllData【ショウオールデータ】メソッドを使用します。

ShowAllData【ショウオールデータ】メソッド

ShowAllData【ショウオールデータ】メソッドの書式と設定値の説明

オブジェクト.ShowAllData

  • オブジェクト(必須)
    Worksheet【ワークシート】オブジェクトを指定します。

矢印が表示されたまま絞り込まれているデータ範囲の絞り込みを解除する例

コード例

Sub 全データ表示()
ActiveSheet.ShowAllData
End Sub

以上で、オートフィルター矢印を操作する方法についての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告