日付フィルタを使用してレコードを抽出する
Excel 2007 から「日付フィルタ」という機能が追加されました。これをマクロで行うには、AutoFilter メソッドで、引数 operator に、xlFilterDynamic を指定し、引数 criteria1 に、XlDynamicFilterCriteria 列挙型 の定数を指定します(Excel 2007 以降のバージョン)。
【書式】
object.AutoFilter ( [ field, criteria1, operator ] )
引数・戻り値
- object ・・・ 対象となる Range オブジェクトを指定します。
- field ・・・ フィルターの対象となるフィールド番号を整数で指定します。対象となる範囲の最も左側の列(フィールド)が、フィールド番号 1 になります。
複数の列(フィールド)をまとめて扱いたい場合は、配列を指定することも可能です。
(例)field := Array(1,3,6) - criteria1 ・・・ XlDynamicFilterCriteria 列挙型 の定数または、その値を指定します。
定数 値 説明 xlFilterToday 1 今日 xlFilterYesterday 2 昨日 xlFilterTomorrow 3 明日 xlFilterThisWeek 4 今週 xlFilterLastWeek 5 先週 xlFilterNextWeek 6 次週 xlFilterThisMonth 7 今月 xlFilterLastMonth 8 先月 xlFilterNextMonth 9 来月 xlFilterThisQuarter 10 今四半期 xlFilterLastQuarter 11 前四半期 xlFilterNextQuarter 12 次の四半期 xlFilterThisYear 13 今年 xlFilterLastYear 14 昨年 xlFilterNextYear 15 来年 xlFilterYearToDate 16 今年の初めから今日まで xlFilterAllDatesInPeriodQuarter1 17 第 1 四半期のすべての日付 xlFilterAllDatesInPeriodQuarter2 18 第 2 四半期のすべての日付 xlFilterAllDatesInPeriodQuarter3 19 第 3 四半期のすべての日付 xlFilterAllDatesInPeriodQuarter4 20 第 4 四半期のすべての日付 xlFilterAllDatesInPeriodJanuary 21 1 月のすべての日付 xlFilterAllDatesInPeriodFebruray 22 2 月のすべての日付 xlFilterAllDatesInPeriodMarch 23 3 月のすべての日付 xlFilterAllDatesInPeriodApril 24 4 月のすべての日付 xlFilterAllDatesInPeriodMay 25 5 月のすべての日付 xlFilterAllDatesInPeriodJune 26 6 月のすべての日付 xlFilterAllDatesInPeriodJuly 27 7 月のすべての日付 xlFilterAllDatesInPeriodAugust 28 8 月のすべての日付 xlFilterAllDatesInPeriodSeptember 29 9 月のすべての日付 xlFilterAllDatesInPeriodOctober 30 10 月のすべての日付 xlFilterAllDatesInPeriodNovember 31 11 月のすべての日付 xlFilterAllDatesInPeriodDecember 32 12 月のすべての日付 xlFilterAboveAverage 33 平均を上回る値 xlFilterBelowAverage 34 平均未満の値 - operator ・・・ xlFilterDynamic を指定します。
AutoFilter メソッド の引数の詳細については、オートフィルタ(AutoFilter メソッド) を参照してください。
日付フィルタを使用してレコードを抽出する例
サンプルVBAソース 1
1 2 3 4 5 6 7 8 9 10 |
Sub Sample10_1_AutoFilter() '「納品日」12月のすべての日付 Range("A1").AutoFilter Field:=10, _ criteria1:=xlFilterAllDatesInPeriodDecember, _ Operator:=xlFilterDynamic End Sub |
実行結果
サンプルVBAソース 実行前
実行後
サンプルVBAソース 2
1 2 3 4 5 6 7 8 9 10 |
Sub Sample10_2_AutoFilter() '「支払日」来年 Range("A1").AutoFilter Field:=11, _ criteria1:=xlFilterNextYear, _ Operator:=xlFilterDynamic End Sub |
実行結果
サンプルVBAソース 実行前
実行後