オートフィルタ(アイコンで抽出する)
Excel 2007 から、条件付き書式で「アイコンセット」が加わりました。AutoFilter メソッド では、引数 Operator に、xlFilterIcon を指定することで、そのアイコンの種類によってレコードを抽出することができます。
【書式】
object.AutoFilter ( [ field, criteria1, operator ] )
引数・戻り値
- object ・・・ 対象となる Range オブジェクトを指定します。
- field ・・・ フィルターの対象となるフィールド番号を整数で指定します。対象となる範囲の最も左側の列(フィールド)が、フィールド番号 1 になります。( ※ アイコンでの抽出の場合、フィールド番号の配列を指定しても最初の番号だけしか適用されないようです。)
- criteria1 ・・・ 抽出条件となるアイコンを指定します。
- operator ・・・ xlFilterIcon を指定します。
AutoFilter メソッド の引数の詳細については、オートフィルタ(AutoFilter メソッド) を参照してください。
アイコンで抽出 作成例 その1
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sub Sample06_1_AutoFilter() Dim myIcon As IconSet Set myIcon = ActiveWorkbook.IconSets(xl5CRV) With Range("B3:J26") '「合計」列で、指定したアイコンでレコードを抽出 .AutoFilter Field:=8, _ criteria1:=myIcon(5), _ Operator:=xlFilterIcon End With End Sub |
実行結果
サンプルVBAソース 実行前
※ 条件付き書式 アイコンセットを設定しています
実行後
アイコンで抽出 作成例 その2
サンプルVBAソース
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 |
Sub Sample06_2_AutoFilter() Dim myIcon As IconSet Set myIcon = ActiveWorkbook.IconSets(xl3Arrows) With Range("B3:J26") '3番目から7番目のフィールドのアイコンが全て '「↑(緑)」であるレコードを抽出 '(注)「アイコンでの抽出」では、フィールド番号の配列は使えない ' => Field:=Array(3,4,5,6,7) としても、 ' 最初の 3 のフィールドだけしか適用されない) .AutoFilter Field:=3, _ criteria1:=myIcon(3), _ Operator:=xlFilterIcon .AutoFilter Field:=4, _ criteria1:=myIcon(3), _ Operator:=xlFilterIcon .AutoFilter Field:=5, _ criteria1:=myIcon(3), _ Operator:=xlFilterIcon .AutoFilter Field:=6, _ criteria1:=myIcon(3), _ Operator:=xlFilterIcon .AutoFilter Field:=7, _ criteria1:=myIcon(3), _ Operator:=xlFilterIcon End With End Sub |
実行結果
サンプルVBAソース 実行前
※ 条件付き書式 アイコンセットを設定しています
実行後