ExcelWork.info

オートフィルタ(日付による抽出)AutoFilter メソッド

日付で、抽出する(AutoFilter メソッド)


【書式】

object.AutoFilter ( [ field, criteria1, operator, criteria2 ] )


引数・戻り値

  • object  ・・・  対象となる Range オブジェクトを指定します。
  • field  ・・・  フィルターの対象となるフィールド番号を整数で指定します。対象となる範囲の最も左側の列(フィールド)が、フィールド番号 1 になります。
    複数の列(フィールド)をまとめて扱いたい場合は、配列を指定することも可能です。
     (例)field := Array(1,3,6)
  • criteria1  ・・・  日付を指定します。
  • criteria2  ・・・  複数(2日)の日付を指定したり、特定の期間を指定する場合にのみ日付を指定します。指定方法は、operator の説明を参照してください。
  • operator  ・・・  特定の日付(1日)を指定する場合は、xlAndxlOr を指定します(省略可)。
    複数(2日)の日付を指定する場合は、xlOr を指定し、引数 criteria1criteria2 に抽出したい日付を指定します。
    特定の期間の抽出をする場合は以下のとおりに指定します。
    引数 内容
    criteria1 “>= [開始日]” または、“> [開始日]” を指定します。
    criteria2 “<= [終了日]” または、“< [終了日]” を指定します。
    operator xlAnd を指定します。



    ※ 3日以上の日付を指定する場合は、xlFilterValues を指定します(Excel 2007 以上のみ)。引数 criteria1 に抽出したい日付を配列で指定します。



日付を指定する場合の注意事項
オートフィルタで、レコードを抽出するとき日付によって絞り込む場合、Excel のバージョンによって抽出結果が、異なる場合があります。以下の表のとおりに行うと期待通りの結果が得られるはずですが、念のため、マクロの記録等などで、確認するほうがよいかもしれません。

セルの表示形式 Excel Ver. 引数 criteria1 に指定する内容
先頭に「*」が付く日付形式
  2015/7/26
 
 
 
2003/2007
 
 
 
 
DateValue 関数を指定
  criteria1 := DateValue(“2015/7/26”)
 または
日付リテラルを指定
  criteria1 := #7/26/2015#
先頭に「*」が付く日付形式
  2015/7/26
2010/2013
 
文字列形式で指定
  criteria1 := “2015/7/26”
先頭に「*」が付かない日付形式
  7月26日
2003/2007
2010/2013
セルに表示されているままを文字列で指定
  criteria1 := “7月26日”



日付を指定する場合、すべてのバージョンで同じ結果を得る方法
「特定の期間」を抽出する方法を利用することで、書式にかかわらず、Excel 2003/2007/2010/2013 のいずれのバージョンでも特定の日付を抽出可能です。
(例)2015/7/26 を抽出したい場合
  criteria1 =: “>=2015/7/26”
  criteria2 =: “<=2015/7/26”
  operator =: xlAnd


AutoFilter メソッド の引数の詳細については、オートフィルタ(AutoFilter メソッド) を参照してください。



日付で抽出する 使用例

サンプルVBAソース 実行前



サンプルVBAソース 1


実行結果

 



サンプルVBAソース 2


実行結果



サンプルVBAソース 3


実行結果



サンプルVBAソース 4


実行結果



サンプルVBAソース 5


実行結果