オートフィルタ(日付・時刻のグループ化)AutoFilter メソッド
グループ化された日付や時刻で、レコードを抽出する
Excel 2007 から日付データがグループ化され、「年」「月」「日」を指定してレコードの抽出を行うことができるようになりました。これをマクロで行うには、AutoFilter メソッドで、引数 operator に、xlFilterValues を指定し、引数 criteria2 に、条件を表す配列 を指定します( 注意:criteria1 ではなく criteria2 )(Excel 2007 以降のバージョン)。
object.AutoFilter ( [ field, criteria1, operator, criteria2 ] )
引数・戻り値
- object ・・・ 対象となる Range オブジェクトを指定します。
- field ・・・ フィルターの対象となるフィールド番号を整数で指定します。対象となる範囲の最も左側の列(フィールド)が、フィールド番号 1 になります。
複数の列(フィールド)をまとめて扱いたい場合は、配列を指定することも可能です。
(例)field := Array(1,3,6) - criteria1 ・・・ 抽出条件を指定します(今回は指定する必要はありません)。
- operator ・・・ xlFilterValues を指定します。
- criteria2 ・・・ 抽出条件を表す配列を指定します
【書式】
criteria2 := Array ( num1, date1, num2, date2, num3, date3 …… )
num( 0 ~ 5 の整数値) と date (日付)がペアとなり、抽出条件を表します(下表参照)。num 意味 0 date で指定した日付の年(対象となるセルは日付形式) 1 date で指定した日付の月(対象となるセルは日付形式) 2 date で指定した日付の日(対象となるセルは日付形式) 3 date で指定した時刻の時(対象となるセルは日付形式) 4 date で指定した時刻の分(対象となるセルは日付形式) 5 date で指定した時刻の秒(対象となるセルは日付形式)
上記、date には、”2015/7/1″ や “2015/07/01″ のように指定します。「0」(年)や「1」(月)を指定する場合でも「月」や「日」の部分を省略したりすることはできません。
Excel 2013 では、日付リテラル( #2015/7/1# )や、日本語(”7月1日”)での指定でも OK でした。ただ、”2015年7月1日” とするとエラーになりました。”7月1日2015年” と指定すると OK でした。
AutoFilter メソッド の引数の詳細については、オートフィルタ(AutoFilter メソッド) を参照してください。
グループ化された日付や時刻を使用してレコードを抽出する例
サンプルVBAソース 1
1 2 3 4 5 6 7 8 9 10 |
Sub Sample11_1_AutoFilter() '「納品日」2015年7月と2015年12月15日のデータを抽出 Range("A1").AutoFilter Field:=10, _ Operator:=xlFilterValues, _ Criteria2:=Array(1, "2015/7/1", 2, "2015/12/15") End Sub |
実行結果
サンプルVBAソース 実行前
実行後
サンプルVBAソース 2
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub Sample11_2_AutoFilter() '「取得日時」2014/8/10、2014/8/11 0:05、2014/8/11 0:15 のデータを抽出 Range("A1").AutoFilter Field:=4, _ Operator:=xlFilterValues, _ Criteria2:=Array(2, "2014/8/10", _ 4, "2014/8/11 0:5:59", _ 4, "2014/8/11 0:15:0") End Sub |
実行結果
サンプルVBAソース 実行前
実行後
関連記事
-
-
セルを参照する(Range プロパティ)
Range プロパティ 任意のセルにアクセスするには Range プロパティを使 …
-
-
ハイパーリンク(Hyperlink オブジェクト)
Hyperlink オブジェクト Hyperlinks コレクション のメンバー …
-
-
列幅を取得・設定・する(ColumnWidth プロパティ)
ColumnWidth プロパティ ColumnWidth プロパティは、対象セ …
-
-
現在選択されているセルを参照(RangeSelection プロパティ)
RangeSelection プロパティ 実際に何が選択されているかにかかわらず …
-
-
数式を設定・取得する(Formula プロパティ・FormulaR1C1 プロパティ)
Formula プロパティ(FormulaR1C1 プロパティ) Formula …
-
-
フリガナの取得(GetPhonetic メソッド)
GetPhonetic メソッド GetPhonetic メソッドは、指定した文 …
-
-
非連続のセルが選択されているか確認する(Areas コレクション)
Areas コレクション の使い方 複数の離れた位置にあるセル範囲を選択した場合 …
-
-
重複するデータを削除(RemoveDuplicates メソッド)
RemoveDuplicates メソッド 指定したセル範囲から重複データを含む …
-
-
オートフィルタ(日付フィルタ)AutoFilter メソッド
日付フィルタを使用してレコードを抽出する Excel 2007 から「日付フィル …
-
-
セルに値を設定する・セルの値を参照する(Value プロパティ)
Value プロパティ Value プロパティは、セルの値を取得したり、値を設定 …