オートフィルタ(色で抽出する)
フォントの色、セルの背景色(条件付き書式による設定を含む)によってレコードを抽出することが可能です。AutoFilter メソッド の引数 criteria1 に色を表す値を指定します。通常、RGB 関数 で指定します。
【書式】
object.AutoFilter ( [ field, criteria1, operator ] )
引数・戻り値
- object ・・・ 対象となる Range オブジェクトを指定します。
- field ・・・ フィルターの対象となるフィールド番号を整数で指定します。対象となる範囲の最も左側の列(フィールド)が、フィールド番号 1 になります。
複数の列(フィールド)をまとめて扱いたい場合は、配列を指定することも可能です。
(例)field := Array(1,3,6) - criteria1 ・・・ 背景色の色またはフォントの色を表すRGB 値を指定します。
指定例 説明 rgbAzure
16777200RGB 値を表す定数やその値を直接指定 RGB(144, 176, 217) RGB 関数を指定 ThisWorkbook.Colors(3) カラーパレット(3番)の色を指定 ThisWorkbook.Theme _
.ThemeColorScheme _
.Colors(msoThemeAccent2)テーマカラー(msoThemeAccent2)を指定 - operator ・・・ セルの背景色で抽出する場合は、xlFilterCellColor を指定します。フォントの色で抽出する場合は、xlFilterFontColor を指定します。
AutoFilter メソッド の引数の詳細については、オートフィルタ(AutoFilter メソッド) を参照してください。
セルの色 / フォントの色 で抽出 使用例
実行前
C列は、セルに背景色を指定、I列、J列は、条件付き書式で背景色を設定しています。
D列からH列には、条件付き書式で、それぞれの列で、下位5位までのフォントの色を赤にする設定をしています。
サンプルVBAソース 1
1 2 3 4 5 6 7 8 9 |
Sub Sample07_1_AutoFilter() Range("B3").AutoFilter Field:=8, _ criteria1:=16512240, _ Operator:=xlFilterCellColor End Sub |
実行結果
サンプルVBAソース 2
1 2 3 4 5 6 7 8 9 |
Sub Sample07_2_AutoFilter() Range("B3").AutoFilter Field:=8, _ criteria1:=RGB(144, 176, 217), _ Operator:=xlFilterCellColor End Sub |
実行結果
サンプルVBAソース 3
1 2 3 4 5 6 7 8 9 |
Sub Sample07_3_AutoFilter() Range("B3").AutoFilter Field:=2, _ criteria1:=ThisWorkbook.Theme. _ ThemeColorScheme.Colors(msoThemeAccent2), _ Operator:=xlFilterCellColor End Sub |
実行結果
サンプルVBAソース 4
1 2 3 4 5 6 7 8 9 |
Sub Sample07_4_AutoFilter() Range("B3").AutoFilter Field:=Array(3, 5), _ criteria1:=ThisWorkbook.Colors(3), _ Operator:=xlFilterFontColor End Sub |