アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel VBAでのオートフィルターについて教えてください。

日付データからフィルターで今日を起点に1ヶ月前のデータの絞り込みをしたいと思っているのですが
基本設定には今月、先月などしか見当たりませんでした。


今日 7/26
1ヶ月前の6/26〜今日までのデータを絞り込みたい

VBAでのやり方を教えていだきたいです。

A 回答 (1件)

こんばんは



VBAとのことですが、セル範囲も何も不明な状態での抽象的なご質問なので、回答も抽象的にならざるを得ません。

>基本設定には今月、先月などしか見当たりませんでした
基本設定ってなんのことなのでしょうか?
意味がわかりかねます。


対象となる日付はシリアル値(=エクセルの日付型の値)となっているものと仮定します。
シリアル値は数値として扱えるので、範囲指定で抽出すれば良いでしょう。

1)日付範囲について
今日の日付は Now で取得できます。
この結果は、時刻も含んでいますので、時刻を外したければ
  DateValue(Now)
などとすれば日付のみにできます。
先月は、その1か月前を算出すれば良いですが(month -1)、3/30に対して1か月前を単純に算出すると、2/30→3/2 となったりしますのでご注意ください。

2)オートフィルター
Criteria2も利用することで、値の範囲指定が可能です。
  セル範囲.AutoFilter Field:=対象列, Criteria1:=">=開始日付", _
Operator:=xlAnd, Criteria2:="<=終了日付"
とすれば、「開始日~終了日」の範囲のデータに対してフィルタをかけられます。


※ Criteiaの設定に一度日付を文字列化する必要がありますが、システムの日付設定がよければ、
  ">=" & date
などでも変換できます。
丁寧に(=確実に)行うなら、
  ">=" & Format(date, "yyyy/m/d")
とかでしょうか。

※ シートがすでにフィルターのかかった状態で実行する可能性がある場合は、一旦、フィルターモードを解除してから、フィルターをかけてください。
    • good
    • 1
この回答へのお礼

ありがとうございます!やってみます!

お礼日時:2022/07/30 06:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!