Excel VBA フィルターで色や値の上位・下位からのデータを抽出する

スポンサーリンク

指定したセルの色やフォントの色でデータを抽出する方法

オートフィルターで任意の色を基準にデータを抽出するには、Range【レンジ】オブジェクトの
AutoFilter【オートフィルター】メソッドの抽出条件を表す引数Operator【オペレータ】にセルの色を表す
xlFilterCellColor」、または値のフォントの色を表す「xlFilterFontColor」を設定します。

1つめの抽出条件となる文字列を表す引数Criteria1【クライテリアワン】に抽出する色をRGB関数で指定します。

色で抽出するAutoFilter【オートフィルター】メソッドの書式と設定値(引数)の説明

オブジェクト.AutoFilter( Field, Criteria1, Operator )

  • オブジェクト(必須)
    抽出元となるセル範囲をRange【レンジ】オブジェクトで指定します。単一セルを指定した場合は、そのセルを含むアクティブ領域が対象になります。
  • Field【フィールド】(必須)
    抽出条件の対象となる列番号を指定します。
  • Criteria1【クライテリアワン】(必須)
    抽出する色をRGB関数で指定します。
  • Operator【オペレータ】(必須)
    セルの色を表す定数「xlFilterCellColor」、または値のフォントの色を表す定数「xlFilterFontColor」を設定します。

1列目の赤で塗りつぶされたセルのデータを抽出するコード例

Sub 色抽出()
ActiveSheet.AutoFilterMode = False
Range("A1").AutoFilter _
           field:=1, _
           Operator:=xlFilterCellColor, _
           Criteria1:=RGB(255, 0, 0)
End Sub

実行結果


上位や下位からの項目数のデータを抽出する方法

オートフィルタでデータの値の上位や下位からの指定した項目数でデータを抽出するには、
Range【レンジ】オブジェクトのAutoFilter【オートフィルター】メソッドの抽出条件を表す引数Operator【オペレータ】に上位から引数Criteria1で指定した項目数の抽出を表す「xlTop10Items」を設定、または下位から引数Criteria1で指定した項目数の抽出を表す
「xlBottom10Items」を設定します。1つめの抽出条件となる文字列を表す引Criteria1【クライテリアワン】には引数Operatorに指定した上位または下位からの抽出する項目数を指定します。

上位、下位で抽出するAutoFilter【オートフィルター】メソッドの書式と設定値(引数)の説明

オブジェクト.AutoFilter( Field, Criteria1, Operator )

  • オブジェクト(必須)
    抽出元となるセル範囲をRange【レンジ】オブジェクトで指定します。単一セルを指定した場合は、そのセルを含むアクティブ領域が対象になります。
  • Field【フィールド】(必須)
    抽出条件の対象となる列番号を指定します。
  • Criteria1【クライテリアワン】(必須)
    引数Operatorに指定した上位または下位からの抽出する項目数を指定します。
  • Operator【オペレータ】(必須)
    上位から引数Criteria1で指定した項目数の抽出を表す「xlTop10Items」、または
    下位から引数Criteria1で指定した項目数の抽出を表す「xlBottom10Items」を設定します。

1列目のデータから上位3項目のデータを抽出するコード例

Sub 上位3項目()
ActiveSheet.AutoFilterMode = False
Range("A1").AutoFilter _
           field:=1, _
           Operator:=xlTop10Items, _
           Criteria1:=3
End Sub

実行結果


上位や下位から指定割合でデータを抽出する方法

オートフィルターでデータの値の上位や下位から指定割合でデータを抽出するには、Range【レンジ】オブジェクトのAutoFilter【オートフィルター】メソッドの抽出条件を表す
引数Operator【オペレータ】に上位から引数Criteria1で指定割合の抽出を表す「xlTop10Percent」を設定、または下位から引数Criteria1で指定割合の抽出を表す
「xlBottom10Percent」を設定します。1つめの抽出条件となる文字列を表す引数Criteria1【クライテリアワン】には引数Operatorに指定した上位または下位からの抽出する割合をパーセンテージで指定します。

上位、下位からの割合で抽出するAutoFilter【オートフィルター】メソッドの書式と設定値(引数)の説明

オブジェクト.AutoFilter( Field, Criteria1, Operator )

  • オブジェクト(必須)
    抽出元となるセル範囲をRange【レンジ】オブジェクトで指定します。単一セルを指定した場合は、そのセルを含むアクティブ領域が対象になります。
  • Field【フィールド】(必須)
    抽出条件の対象となる列番号を指定します。
  • Criteria1【クライテリアワン】(必須)
    引数Operatorに指定した上位または下位からの抽出割合をパーセンテージで指定します。
  • Operator【オペレータ】(必須)
    上位から引数Criteria1で指定した割合の抽出を表す「xlTop10Percent」、または
    下位から引数Criteria1で指定した割合の抽出を表す「xlBottom10Percent」を設定します。

1列目のデータから下位50%のデータを抽出するコード例

Sub 下位50パーセント()
ActiveSheet.AutoFilterMode = False
Range("A1").AutoFilter _
           field:=1, _
           Operator:=xlBottom10Percent, _
           Criteria1:=50
End Sub

実行結果


以上で、フィルターで色や値の上位・下位からのデータを抽出する方法についての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告