[[20230303152044]] 『VBA オートフィルターの「除外」の記述』(たけたけ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBA オートフィルターの「除外」の記述』(たけたけ)

 いつも勉強させていただいております。
 VBAのオートフィルターについて教えてください。

 オートフィルターを使って、
 2023年1月のもののみを抽出するには以下でできました。
 dt="1/31/2023"
 ActiveSheet.Range("$A$1:$Z$1000").AutoFilter Field:=1, Operator:=xlFilterValues, Criteria2:=Array(1, dt)

 では、2023年1月以外のものを抽出する場合は、以下はどのように記述すればよいでしょうか?
 ActiveSheet.Range("$A$1:$Z$1000").AutoFilter Field:=1, Operator:=xlFilterValues, ・・・・・

 ご教授の程よろしくお願いいたします。

< 使用 Excel:Microsoft365、使用 OS:Windows11 >


 >2023年1月以外のものを抽出する場合

 これをマクロ記録すれば良いんでない
(ベルファスト) 2023/03/03(金) 15:31:10

 マクロ記録したら2023年1月以外を全て選択する記述になるので、これを避ける記述がしたいので。

(たけたけ) 2023/03/03(金) 15:45:23


済みません意味が解らないので、他の方からの返信をお待ちください
(ベルファスト) 2023/03/03(金) 15:48:51

そんな難しいことは言ってませんけど・・・。

(たけたけ) 2023/03/03(金) 15:51:06


 簡単に言うと、2023年1月以外のものを抽出する記述を、変数 dt を使って記述したいということです。

(たけたけ) 2023/03/03(金) 15:56:59


 dt1="2023/1/1"
 dt2="2023/1/31"
 ActiveSheet.Range("$A$1:$Z$1000").AutoFilter Field:=1, _
 Criteria1:= "<"&dt1, Operator:=xlOr, Criteria2:=">"&dt2
 ではどうだろうか?
(ねむねむ) 2023/03/03(金) 16:05:54

 ねむねむさん

 数式のご提示有難うございます。
 うまく抽出されましたが、こういったやり方しかないのでしょうか?
 除外なので、"<>" を使ってできないものかと思ってました。
 "<>" を使う記述ができないのであれば、諦めてご提示していただいた記述にしますが。

(たけたけ) 2023/03/03(金) 16:29:33


 とりあえず
https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.autofilter
 でそういうパラメータの与え方ができるか確認してみてはどうだろうか?
(ねむねむ) 2023/03/03(金) 16:51:02

ワークシート上の作業列に数式で期間内か期間外を判定して、TRUE FALSE で絞り込むとか。
(フォーキー) 2023/03/03(金) 17:18:52

 フィルターしたあと、そのデータをどうするのでしょう

 オートフィルタで表示させてマクロ終了 ということなら分かりますが、
 もし、VBAでフィルタ後の処理があるなら、オートフィルタよりもっといい方法があるような気がします 
(´・ω・`) 2023/03/03(金) 17:38:01

フォーキーさん

作業列に数式で期間内か期間外を判定するという手間をかけるなら、ねむねむさんの数式で十分な気がします。申し訳ないです。

´・ω・`さん

フィルターした後、表示されたデータを削除、そこからゴソゴソと諸々の処理が待ってます。

(たけたけ) 2023/03/03(金) 17:56:19


 でしたら、バワークエリーがおすすめです
 またはフィルタの詳細設定(アドバンストフィルタ)で抽出してから
 抽出データに対して処理するのがいいとおもいます
(´・ω・`) 2023/03/03(金) 18:01:22

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.