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

実行結果


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

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

フォローする

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