Excel VBA オートフィルターの日付フィルターでデータを抽出する

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

日付フィルターでデータを抽出する方法

Excel2007からのオートフィルターには
日付が入力されている列に選択した期間によって
抽出対象がダイナミックに変化する
「日付フィルター」を適用できます。


この機能をVBAから利用するには
Range【レンジ】オブジェクトの
AutoFilter【オートフィルター】メソッド
抽出条件を表す
引数Operator【オペレーター】に
動的フィルターを表す
「xlFilterDynamic」を設定し
1つめの抽出条件となる文字列を表す
引数Criteria1【クライテリアワン】に
日付フィルターの定数を指定して実行します。

「日付フィルター」を使用する書式

オブジェクト.AutoFilter ( Field ,Criteria1, Operator )


設定値(引数)の説明

  • オブジェクト(必須)
    抽出元となるセル範囲をRangeオブジェクトで指定します。
    単一セルを指定した場合は、そのセルを含むアクティブ領域が対象になります。
  • Field【フィールド】(必須)
    抽出対象となる日付が入力されている列番号を
    アクティブセル領域の左からの順番の番号で指定
    します。
  • Criteria1【クライテリアワン】(必須)
    以下の「日付フィルター」の定数を指定します。

    引数Criteria1に設定できる日付フィルターの定数
    定数内容
    xlFilterToday1当日
    xlFilterYesterday2前日
    xlFilterTomorrow3翌日
    xlFilterThisWeek4今週
    xlFilterLastWeek5先週
    xlFilterNextWeek6来週
    xlFilterThisMonth7今月
    xlFilterLastMonth8先月
    xlFilterNextMonth9来月
    xlFilterThisQuarter10当四半期
    xlFilterLastQuarter11前四半期
    xlFilterNextQuarter12次の四半期
    xlFilterThisYear13今年
    xlFilterLastYear14前年
    xlFilterNextYear15来年
    xlFilterYearToDate16当日から1年前
    xlFilterAllDatesInPeriodQuarter117第1四半期
    xlFilterAllDatesInPeriodQuarter218第2四半期
    xlFilterAllDatesInPeriodQuarter319第3四半期
    xlFilterAllDatesInPeriodQuarter420第4四半期
    xlFilterAllDatesInPeriodJanuary211月
    xlFilterAllDatesInPeriodFebruray222月
    xlFilterAllDatesInPeriodMarch233月
    xlFilterAllDatesInPeriodApril244月
    xlFilterAllDatesInPeriodMay255月
    xlFilterAllDatesInPeriodJune266月
    xlFilterAllDatesInPeriodJuly277月
    xlFilterAllDatesInPeriodAugust288月
    xlFilterAllDatesInPeriodSeptember299月
    xlFilterAllDatesInPeriodOctober3010月
    xlFilterAllDatesInPeriodNovember3111月
    xlFilterAllDatesInPeriodDecember3212月
    xlFilterAboveAverage33平均を上回る値
    xlFilterBelowAverage34平均未満の値

    ※2月を表す定数「xlFilterAllDatesInPeriodFebruray」に関して
    2月のスペルは「February」ですが、この定数では「Februray」と
    スペルが間違えて登録されています。

  • Operator【オペレーター】(必須)
    「動的フィルター」を表す定数xlFilterDynamicを設定します。

「日付フィルター」で今週を抽出するコード例

Sub 日付フィルター()
ActiveSheet.AutoFilterMode = False
Range("A1").AutoFilter Field:=1, _
            Criteria1:=xlFilterThisWeek, _
            Operator:=xlFilterDynamic
End Sub

実行結果


以上で
日付フィルターでデータを抽出する方法についての解説を終了します。
ありがとうございます。

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

フォローする

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