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

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

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク