関数・メソッド

特定の期間のデータを抽出する【AutoFilterメソッド】【ExcelVBA】

絞り込む期間の指定

表の中からある期間のデータのみを絞り込みたい場合、下のような設定方法があります。

1.XlDynamicFilterCriteriaで条件を指定する
・引数Citeria1 に XlDynamicFilterCriteria から該当する期間を指定
・引数Operator に xlFilterDynamic を指定

2.演算子を使う
・引数Criteria1と引数Criteria2に演算子を使って期間を指定
・引数Operatorに xlAnd または xlOr を指定

3.Arrayを使う(複数日)
・引数Criteria1にArray関数を使って期間を指定
・引数Operatorに xlFilterValues を指定

 

サンプルコード

まず、以下の表をA1セルに貼り付けてください。

日付 担当者
2025/1/1 Aさん
2025/2/26 Cさん
2025/3/12 Bさん
2025/4/25 Aさん
2025/5/5 Bさん
2025/6/18 Cさん
2025/8/9 Cさん
2025/11/12 Aさん
2025/12/22 Cさん
Public Sub Sample()

'■XlDynamicFilterCriteria定数を使う
  '今月のみ
  Range("A1").AutoFilter Field:=1, Criteria1:=xlFilterThisMonth, Operator:=xlFilterDynamic
  
'■演算子を使う
  '3/12のみ
  Range("A1").AutoFilter Field:=1, Criteria1:="2025/3/12"
  '1/1~6/30まで
  Range("A1").AutoFilter Field:=1, Criteria1:=">=2025/1/1", _
    Operator:=xlAnd, Criteria2:="<=2025/6/30"
  '3/1~5/31以外
  Range("A1").AutoFilter Field:=1, Criteria1:=">2025/3/1", _
    Operator:=xlOr, Criteria2:="<2025/5/31"
  
'■Arrayを使う  
  '3/12,8/9,12/22のみ
  Range("A1").AutoFilter Field:=1, _
    Criteria1:=Array("2025/3/12", "2025/8/9", "2025/12/22"), _
    Operator:=xlFilterValues

End Sub

 

注意点

  • 日付の指定にワイルドカード(*)は使用できません。
  • 日付の書式は完全に一致していなければなりません。(データが01/01なら1/1は不可)
  • XlDynamicFilterCriteria の一覧はコチラです。

 

関連記事

コメント