オートフィルタ(日付・時刻のグループ化)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ソース 実行前
実行後
関連記事
-
セル範囲を結合・結合を解除(Merge メソッド・UnMerge メソッド)
Merge メソッド・UnMerge メソッド セルを結合するには、指定したセル …
-
使用中のセル範囲を取得(UsedRange プロパティ)
UsedRange プロパティ UsedRange プロパティは、指定したワーク …
-
オートフィルタ(抽出条件で使用できる演算子・記号)AutoFilter メソッド
AutoFilter メソッド 【書式】 object.AutoFilter ( …
-
セルの位置を取得(Left プロパティ、Top プロパティ)
Left プロパティ・Top プロパティ Left プロパティは、「A列」の左端 …
-
文字列の縦位置を取得・設定する(VerticalAlignment プロパティ)
VerticalAlignment プロパティ VerticalAlignmen …
-
フリガナの設定(SetPhonetic メソッド)
フリガナの設定(SetPhonetic メソッド) SetPhonetic メソ …
-
セルに値を設定する・セルの値を参照する(Value2 プロパティ)
Value2 プロパティ Value プロパティとの違いは、Value2 プロパ …
-
文字列の横位置を取得・設定する(HorizontalAlignment プロパティ)
HorizontalAlignment プロパティ HorizontalAlig …
-
アクティブなセルを参照する(ActiveCell プロパティ)
ActiveCell プロパティ ActiveCell プロパティは、各ウィンド …
-
連続データを入力する(AutoFill メソッド)
AutoFill メソッド Excel で、連続するデータを入力する「オートフィ …