EXCEL VBA オートフィルタでデータの抽出・日付で絞り込む・期間・年月・四半期 (AutoFilter)

 

 

EXCEL VBA オートフィルタでデータの抽出・日付で絞り込む・期間・年月・四半期 (AutoFilter)

 

 

 ●はじめに

今回説明するのは、オートフィルター(Autofilter)メゾットを利用して、データを日付で絞り込む方法を説明いたします。オートフィルターには、「日付フィルター」と言う機能がありますが、この機能を使う事で、今月のデータとか昨年のデータとか四半期と言ったデータを絞り込む事ができます。日付のあるデータを絞り込む時にはとても便利だと思います。それでは、サンプルプログラムを交えて順番に説明いたします。

 

●【EXCEL VBA オートフィルタでデータの抽出・条件・設定方法 (AutoFilter)については、下記を参照して下さい】

EXCEL VBA オートフィルタでデータの抽出・条件・設定方法 (AutoFilter)

 

●【Range.AutoFilter メソッド (Excel)、下記を参照して下さい】(Microsoft社 様)】
https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.autofilter

 

 

 

 ●書式の説明① Autofilterメゾット

● Autofilterメゾット(日付の絞り込み)を利用するには、下記の通りに設定を行います。

・オブジェクト.Autofilter(Field,Criteria1,Operator

Field・・・フィルタの対象となるフィールド番号を指定します。
Criteria1・・・データの抽出条件を指定します。(下記参照)
Operator・・・絞り込みの定数を指定します。

定数内容(説明)
xlFilterYesterday1昨日(前日)
xlFilterTomorrow2明日(翌日)
xlFilterToday3今日(当日)
xlFilterThisWeek4今週
xlFilterLastWeek5先週
xlFilterNextWeek6来週
xlFilterThisMonth7今月
xlFilterLastMonth8先月
xlFilterNextMonth9来月
xlFilterThisQuarter10今四半期(当四半期)
xlFilterLastQuarter11前四半期
xlFilterNextQuarter12来四半期
xlFilterThisYear13今年
xlFilterLastYear14昨年
xlFilterNextYear15来年
xlFilterYearToDate16今年の初めから今日まで
xlFilterAllDatesInPeriodQuarter117第一四半期
xlFilterAllDatesInPeriodQuarter218第二四半期
xlFilterAllDatesInPeriodQuarter319第三四半期
xlFilterAllDatesInPeriodQuarter420第四四半期
xlFilterAllDatesInPeriodJanuary211月
xlFilterAllDatesInPeriodFebruray222月
xlFilterAllDatesInPeriodMarch233月
xlFilterAllDatesInPeriodApril244月
xlFilterAllDatesInPeriodMay255月
xlFilterAllDatesInPeriodJune266月
xlFilterAllDatesInPeriodJuly277月
xlFilterAllDatesInPeriodAugust288月
xlFilterAllDatesInPeriodSeptember299月
xlFilterAllDatesInPeriodOctober3010月
xlFilterAllDatesInPeriodNovember3111月
xlFilterAllDatesInPeriodDecember3212月
xlFilterAboveAverage33平均を上回る値
xlFilterBelowAverage34平均未満の値

 

【使用例】
※ A列「設置日」のデータに対して、昨年「xlFilterLastYear」(2021年)の日付で絞り込みます。

 

 

【注意点】
・上記の2月を意味する定数は、「xlFilterAllDatesInPeriodFebruray」ですが、2月の英単語は「February」です。スペルが間違えていますが、上記の「xlFilterAllDatesInPeriodFebruray」の定数で登録しても問題ありません。(EXCEL側で間違えて登録されています)

 

 

 

EXCEL VBA オートフィルタでデータの抽出・日付で絞り込む・特定の日付で絞り込む (AutoFilter)

 

 

 ●書式の説明② Autofilterメゾット

● Autofilterメゾット(日付の絞り込み)を利用するには、下記の通りに設定を行います。

・オブジェクト.Autofilter(Field,Criteria1

Field・・・フィルタの対象となるフィールド番号を指定します。
Criteria1・・・データの抽出条件を指定します。


【使用例】

※ A列「設置日」のデータに対して、日付指定(2022/10/15)で絞り込みます。

 

 

 

 

 

EXCEL VBA オートフィルタでデータの抽出・日付で絞り込む・特定の日付で絞り込む (AutoFilter)

 

 

 ●書式の説明② Autofilterメゾット

● Autofilterメゾット(日付の絞り込み)を利用するには、下記の通りに設定を行います。

・オブジェクト.Autofilter(Field,Operator,Criteria2

Field・・・フィルタの対象となるフィールド番号を指定します。
Operator・・・絞り込みの定数を指定します。:xlFilterValues・・・【フィルターの値を指定します。】
Criteria2・・・データの抽出条件を指定します。

 

数値(設定値)説明(内容)
後ろに設定した日付の年
後ろに設定した日付の月
後ろに設定した日付の日
3後ろに設定した日付の時
4後ろに設定した日付の分
5後ろに設定した日付の秒

 

 

【サンプルプログラム】:A列の日付から2022年10月と2022年12月のデータ抽出します。
【データ抽出説明】:Arrayを使い複数の月を指定します。設定1:で月を対象として抽出しています。(上記表を参照)

 

【抽出結果】

 

【サンプルプログラム】:A列の日付から2021年と2019年のデータ抽出します。
【データ抽出説明】:Arrayを使い複数の年を指定します。設定0:で年を対象として抽出しています。(上記表を参照)

 

【抽出結果】

 

【サンプルプログラム】:A列の日付から2022年と2021年及び2020年1月のデータ抽出します。
【データ抽出説明】:Arrayを使い複数の年を指定します。設定0:で年を対象・設定1:で月を対象として抽出しています。(上記表を参照)

 

【抽出結果】

 

 

 

 

 

EXCEL VBA オートフィルタのドロップダウン矢印を表示・非表示に切り替える。

 

 

 ●書式の説明③ Autofilterメゾット ドロップダウン矢印を表示・非表示

● Autofilterメゾット/ドロップダウンの矢印(表示・非表示)の設定方法は、下記の通りに設定を行います。

・オブジェクト.Autofilter(Field,VisibleDropDown

Field・・・フィルターの対象となるフィールド番号を指定します。
VisibleDropDown・・・フィルターのドロップダウン矢印を表示・非表示に切り替える事ができます。
Trueは、矢印を表示する。(既定値)
Falseは、矢印を非表示にする。

【サンプルプログラム】:A列とB列のフィルターのドロップダウン矢印を非表示に切り替えます。(一括切替)

 

【サンプルプログラム】:A列とC列のフィルターのドロップダウン矢印を非表示に切り替えます。(選択切替)

 

 

 

 

 

 

最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。