- ベストアンサー
エクセル-マクロ-オートフィルタ
エクセルのマクロで、 オートフィルタでデータを抽出する場合、 引数Criterial,Criterial2で文字列を指定しますが、 Criterial3…とできません。 ・3個以上抽出したい場合 ・「*~」以外を抽出したい場合 がわかりません。 教えて下さいmm。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
(1)Criteria3:="3"はエラーになります。 Criteria2:="1"までにすると上手く行きます。 「1つのフィールドでは」、Criteria2までしか使えないでうね。(EXL2000) #1回答のとおりですが、2つ目が「Field:=b,」と別列になっているのは大丈夫でしょうか。またAutoFilterを2個重ねると後のほうが、優先と言うか結果となりましたが。 (上手く行かない例) Sub Macro2() Range("A1:C6").Select AutoFilterMode = False Selection.AutoFilter Field:=1, Criteria1:="2", _ Operator:=xlOr, Criteria2:="1", Operator:=xlOr, _ Criteria3:="3" End Sub (2)Criteria1:="<>1*"のようなものが、オプションの「で始まらない」のマクロの記録で出るので使えると思いやって見ました。 Selection.AutoFilter Field:=2, Criteria1:="<>a*", Operator:=xlAndで「aで始まらないもの」が選択されました。
その他の回答 (2)
- kazuhiko5681
- ベストアンサー率49% (79/159)
こんにちは。私の手元ではテストしてうまく動作したのですが、貴方様の思い通りの動作をするサンプルマクロを組んでみたいと思います。貴方様のおやりになりたいことを具体的に詳しく教えて下さい。また、次のことも教えて下さい。 ・第1条件・第2条件・第3条件・第4条件 ・第1・第2条件を抽出する際のフィールド番号 ・第3・第4条件を抽出する際のフィールド番号 お手数をおかけいたしますが、よろしくお願いいたします。
お礼
ありがとうございますっ。 今回は解決してしまいましたが、そういった甘えた質問方法でしても、細かいところまで行き届くお力を貸してくださる方がいらっしゃる事がわかって感動しました。 まだまだ覚えたてで勉強不足なので、またokwebを利用する事と思います。 ご縁があればまたお力を貸してください。 よろしくお願いします。 ありがとうございました。
- kazuhiko5681
- ベストアンサー率49% (79/159)
初めまして。抽出条件は、Criteria2までしか指定することができません。3個以上の抽出をかける時には次のように操作します。 抽出条件が4種類あったとき Object.Autofilter Selection.Autogfilter Field:=a, Criteria1:=第3条件,Criteria2:=第4条件 Selection.AutoFIlter Field:=b, Criteria1:=第1条件,Criteria2:=第2条件 お試しになってみて下さい。
お礼
ありがとうございます。 同じ列(Field)で3個以上の抽出をかけたい時、頂いたのを例に、 Selection.Autogfilter Field:=a, Criteria1:=第3条件,Criteria2:=第4条件 Selection.AutoFIlter Field:=b, Criteria1:=第1条件,Criteria2:=第2条件 上記でAもBも1だった場合でも、 第1条件・第2条件だけにならずに1234全て表示されるのでしょうか? あああ いいい ううう えええ
補足
ここに書くのもどうかと思ったのですが、 非常に素早いレス心強くて本当にありがとうございました。 どの本でも「Criteria2までしか指定することができません」とは言い切ってはいなかったので、 早い段階で試行錯誤せずに諦めがついたのも助かりました。 私の質問の仕方が悪かったのが原因なのに、大変申し訳ありませんが、今回は、 直接やりたい事に結びついたり、それがなかったら解決への近道になったであろう、上のお2人にポイント発行させていただきます。 すいません。でも本当に感謝しております。 ありがとうございました。
お礼
ありがとうございます!!! aaa bbb ccc ddd eee fff ggg のような場合、「ggg以外」にしたかったのですが、xlorしかしらなくて、「xlオア」だった事、andなど全て使えると言うことを知りませんでした。 おかげさまでやりたい事が出来ました。 そして、今後の仕事の幅や速度が大幅アップです^^。 それに、仕事中に速い回答頂けたので、ものすごくはかどりました。 あれですね、okwebというシステム、皆さんの知識の集合とはものすごい価値のあるものですね。 本当にありがとうございました。