オートフィルタ(日付による抽出)AutoFilter メソッド
日付で、抽出する(AutoFilter メソッド)
object.AutoFilter ( [ field, criteria1, operator, criteria2 ] )
引数・戻り値
- object ・・・ 対象となる Range オブジェクトを指定します。
- field ・・・ フィルターの対象となるフィールド番号を整数で指定します。対象となる範囲の最も左側の列(フィールド)が、フィールド番号 1 になります。
複数の列(フィールド)をまとめて扱いたい場合は、配列を指定することも可能です。
(例)field := Array(1,3,6) - criteria1 ・・・ 日付を指定します。
- criteria2 ・・・ 複数(2日)の日付を指定したり、特定の期間を指定する場合にのみ日付を指定します。指定方法は、operator の説明を参照してください。
- operator ・・・ 特定の日付(1日)を指定する場合は、xlAnd や xlOr を指定します(省略可)。
複数(2日)の日付を指定する場合は、xlOr を指定し、引数 criteria1 と criteria2 に抽出したい日付を指定します。
特定の期間の抽出をする場合は以下のとおりに指定します。引数 内容 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
1 2 3 4 5 6 7 8 9 10 11 |
Sub Sammple08_1_AutoFilter() 'フィールド番号10「納品日」7月26日または8月1日を抽出(Excel 2013) Range("A1").AutoFilter Field:=10, _ Criteria1:="7月26日", _ Criteria2:="8月1日", _ Operator:=xlOr End Sub |
実行結果
サンプルVBAソース 2
1 2 3 4 5 6 7 8 9 10 |
Sub Sammple08_2_AutoFilter() 'フィールド番号11「支払日」2015/9/10 を抽出(Excel 2013) Range("A1").AutoFilter Field:=11, _ Criteria1:="2015/9/10" End Sub |
実行結果
サンプルVBAソース 3
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub Sammple08_3_AutoFilter() 'フィールド番号10「納品日」 '2015/7/26 以降(当日含む)2015/7/26 以前(当日含む)(Excel 2013) Range("A1").AutoFilter Field:=10, _ Criteria1:=">=2015/7/26", _ Criteria2:="<=2015/7/26", _ Operator:=xlAnd End Sub |
実行結果
サンプルVBAソース 4
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub Sammple08_4_AutoFilter() 'フィールド番号10「納品日」 '2015/12/16 以降(当日含まない)2015/12/25 以前(当日含まない)(Excel 2013) Range("A1").AutoFilter Field:=10, _ Criteria1:=">2015/12/15", _ Criteria2:="<2015/12/25", _ Operator:=xlAnd End Sub |
実行結果
サンプルVBAソース 5
1 2 3 4 5 6 7 8 9 10 |
Sub Sammple08_5_AutoFilter() 'フィールド番号10「納品日」指定日を抽出(Excel 2013) Range("A1").AutoFilter Field:=10, _ Criteria1:=Array("8月1日", "12月17日", "12月25日"), _ Operator:=xlFilterValues End Sub |
実行結果
関連記事
-
対象のセルを直接参照しているセル全てを取得(DirectDependents プロパティ)
DirectDependents プロパティ DirectDependents …
-
文字の向きを表す値を取得・設定する(Orientation プロパティ)
Orientation プロパティ Orientation プロパティで、文字列 …
-
対象のセルが配列数式の一部かどうか(HasArray プロパティ)
HasArray プロパティ HasArray プロパティは、対象のセルが配列数 …
-
AutoFilter オブジェクト(メソッド・プロパティ)
AutoFilter.ShowAllData メソッド AutoFilter.S …
-
行の高さを取得・設定・する(RowHeight プロパティ)
RowHeight プロパティ RowHeight プロパティは、対象セルの高さ …
-
ハイパーリンク(Hyperlink オブジェクト)
Hyperlink オブジェクト Hyperlinks コレクション のメンバー …
-
文字列の一部の書式を変更(Characters プロパティ)
文字列の一部を参照(Characters プロパティ) Characters プ …
-
VBA で、ワークシート関数を使用(WorksheetFunction プロパティ)
VBA で、ワークシと関数を使用 VBA から、ワークシート関数を呼び出す場合、 …
-
対象のセルが参照している全てのセルを取得(Precedents プロパティ)
Precedents プロパティ Precedents プロパティは、対象のセル …
-
セルの値を置換・書式設定(Replace メソッド,ReplaceFormat プロパティ)
セルの値の置換と書式設定 検索条件に一致するセルの書式を設定するには、まず、Ap …