図書館で借りてきた某書籍の覚書です。
【データを抽出する】
データを抽出するにはAutoFilterメソッドを使う。
Rangeオブジェクト.AutoFilter Field:=対象列, Criteria1:=条件
Range("D3").CurrentRegion.AutoFilter _ 'A3を含む範囲(表)にオートフィルターを抽出する'
Field:=4, Criteria:="おれ"
'4列目が「おれ」のデータを抽出する'
【指定した順位までのデータを抽出する】
データを抽出するにはAutoFilterメソッドの引数にOperatorを設定する。
Rangeオブジェクト.AutoFilter Field:=対象列, Criteria1:=条件, Operator:=フィルターの種類
※種類
xlAnd |
:抽出条件1と抽出条件2の両方を満たす
|
xlBottom1OItems
|
:抽出条件1で指定される項目数(低い値) |
xlBottom1OPercent |
:抽出条件1で指定される割合(低い値) |
xlFilterCellColor |
:セルの色 |
xlFilterDynamic |
:動的フィルター |
xlFilterFontColor |
:フォントの色 |
xlFilterIcon |
:フィルターアイコン |
xlFilterValues |
:フィルターの値 |
xlOr |
:抽出条件1または抽出条件2のどちらかを満たす |
xlTop10Items |
:抽出条件1で指定される項目数(高い値) |
xlTop10Percent |
:抽出条件1で指定される割合(高い値) |
Range("D3").CurrentRegion.AutoFilter _ 'D3を含む範囲(表)にオートフィルターを抽出する'
Field:=4, Criteria:=3, Operator:=xlTopItems
'4列目が上位3名のデータを抽出する'
指定した数値以上のデータの値を抽出するには、Criteriaで指定する。
Range("D3").CurrentRegion.AutoFilter _ 'D3を含む範囲(表)にオートフィルターを抽出する'
Field:=4, Criteria:">=2000"
'4列目の値が200以上のデータを抽出する'
平均以上・平均以下で抽出するには、Criteriaで指定する。
xlFilterAboveAverage |
:平均以上
|
xlFilterBottomAverage
|
:平均以下 |
Range("D3").CurrentRegion.AutoFilter _ 'D3を含む範囲(表)にオートフィルターを抽出する'
Field:=4, Criteria:xlFilterAboveAverage, _
Operator:=xlFilterDynamic '平均以上のデータを抽出する'
セルの色で抽出するには、OperatorをxlFilterCellColorに指定する。
Range("D3").CurrentRegion.AutoFilter _ 'D3を含む範囲(表)にオートフィルターを抽出する'
Field:=6, Criteria:=RGB(255, 0, 0) _
, Operator:=xlFilterCellColor
'6列目のセルの色が「赤」のデータを抽出する'
文字列で抽出するには、Criteria1を変更する。
Range("D3").CurrentRegion.AutoFilter _ 'D3を含む範囲(表)にオートフィルターを抽出する'
Field:=4, Criteria:="栃木県"
'4列目が「栃木県」のデータを抽出する。'
Or条件で抽出する場合、OperatorにxlOrを指定する。
Rangeオブジェクト.AutoFilter Field:=対象列, Criteria1:=条件1, Criteria2:=条件2, Operator:=xlOr
Range("A3").CurrentRegion.AutoFilter _ 'A3を含む範囲(表)にオートフィルターを抽出する'
Field:=4, Criteria1:="東京都", Criteria2:="神奈川県" _
, Operator:=xlOr
'4列目が「東京都」もしくは「神奈川県」で始まるデータを抽出する。'
And条件で抽出する場合、複数のAutoFilterを指定する。
Rangeオブジェクト.AutoFilter Field:=対象列, Criteria1:=条件1
With Range("A3").CurrentRegion _
.AutoFilter Field:=4, Criterial:=">=10"
.AutoFilter Field:=5, Criterial:="岩手県"
End With
【重複しないリストを抽出する】
重複しないリストを抽出するにはAdvancedFilterメソッドを使う。
Rangeオブジェクト.AdvancedFilter Action:=動作, CopyToRange:=コピー先, Unique:=重複
※動作
xlFilterCopy |
:抽出したデータをコピーする |
※コピー先
※重複
Range("A3:G24").CurrentRegion.AdvancedFilter _ 'D3を含む範囲(表)にオートフィルターを抽出する。重複するデータはコピーしない'
Action:=xlFilterCopy, CopyToRange:=Range("G3")
_
, Unique:=True
'抽出結果をセルG3以降にコピーする'
【"年"、"月"で抽出する】
"年"、"月"で抽出するには、AutoFilterメソッドのOperator引数に値を設定する。
Rangeオブジェクト.AutoFilter Field:=対象列, Criteria1:=条件, Operator:=フィルターの種類
</tbod</tbod</tbod</tbod</tbod</tbod</tbod</tbod</tbod
:来月:今年
xlFilterTommorow
|
:明日 |
xlFilterToday
|
:今日 |
xlFilterYesterday
|
:昨日 |
xlFilterNextWeek
|
:来週 |
xlFilterThisWeek
|
:今週 |
xlFilterLastWeek
|
:先週 |
xlFilterNextMonth
|
:来月 |
xlFilterThisMonth
|
:今月 |
xlFilterLastMonth
|
:先月 |
xlFilterNextQuarter
|
:次の四半期 |
xlFilterThisQuarter
|
:今四半期 |
xlFilterLastQuarter
|
:前四半期 |
xlFilterNextYear
|
:来年 |
xlFilterThisYear
|
:今年 |
xlFilterLastYear
|
:前年 |
xlFilterYearToDate
|
:今年の初めから今日まで |
Range("A3:G24").CurrentRegion.AutoFilter _ 'D3を含む範囲(表)にオートフィルターを抽出する。'
Field:=1, Criterial:=xlFilterThisYear _
, Operator:=xlFilterDynamic '1列目が「今年」のデータを抽出する'
【オートフィルターを解除する】
すべてのデータを表示するには、ShowAllDataメソッドを使う。
Worksheetオブジェクト.ShowAllData
Worksheets("Sheet1").ShowAllData 'すべてのデータを表示する'