• ベストアンサー

エクセル-マクロ-オートフィルタ

エクセルのマクロで、 オートフィルタでデータを抽出する場合、 引数Criterial,Criterial2で文字列を指定しますが、 Criterial3…とできません。 ・3個以上抽出したい場合 ・「*~」以外を抽出したい場合 がわかりません。 教えて下さいmm。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

(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で始まらないもの」が選択されました。

majimemajime
質問者

お礼

ありがとうございます!!! aaa bbb ccc ddd eee fff ggg のような場合、「ggg以外」にしたかったのですが、xlorしかしらなくて、「xlオア」だった事、andなど全て使えると言うことを知りませんでした。 おかげさまでやりたい事が出来ました。 そして、今後の仕事の幅や速度が大幅アップです^^。 それに、仕事中に速い回答頂けたので、ものすごくはかどりました。 あれですね、okwebというシステム、皆さんの知識の集合とはものすごい価値のあるものですね。 本当にありがとうございました。

その他の回答 (2)

回答No.3

こんにちは。私の手元ではテストしてうまく動作したのですが、貴方様の思い通りの動作をするサンプルマクロを組んでみたいと思います。貴方様のおやりになりたいことを具体的に詳しく教えて下さい。また、次のことも教えて下さい。 ・第1条件・第2条件・第3条件・第4条件 ・第1・第2条件を抽出する際のフィールド番号 ・第3・第4条件を抽出する際のフィールド番号 お手数をおかけいたしますが、よろしくお願いいたします。

majimemajime
質問者

お礼

ありがとうございますっ。 今回は解決してしまいましたが、そういった甘えた質問方法でしても、細かいところまで行き届くお力を貸してくださる方がいらっしゃる事がわかって感動しました。 まだまだ覚えたてで勉強不足なので、またokwebを利用する事と思います。 ご縁があればまたお力を貸してください。 よろしくお願いします。 ありがとうございました。

回答No.1

初めまして。抽出条件は、Criteria2までしか指定することができません。3個以上の抽出をかける時には次のように操作します。 抽出条件が4種類あったとき Object.Autofilter Selection.Autogfilter Field:=a, Criteria1:=第3条件,Criteria2:=第4条件 Selection.AutoFIlter Field:=b, Criteria1:=第1条件,Criteria2:=第2条件 お試しになってみて下さい。

majimemajime
質問者

お礼

ありがとうございます。 同じ列(Field)で3個以上の抽出をかけたい時、頂いたのを例に、 Selection.Autogfilter Field:=a, Criteria1:=第3条件,Criteria2:=第4条件 Selection.AutoFIlter Field:=b, Criteria1:=第1条件,Criteria2:=第2条件 上記でAもBも1だった場合でも、 第1条件・第2条件だけにならずに1234全て表示されるのでしょうか? あああ いいい ううう えええ

majimemajime
質問者

補足

ここに書くのもどうかと思ったのですが、 非常に素早いレス心強くて本当にありがとうございました。 どの本でも「Criteria2までしか指定することができません」とは言い切ってはいなかったので、 早い段階で試行錯誤せずに諦めがついたのも助かりました。 私の質問の仕方が悪かったのが原因なのに、大変申し訳ありませんが、今回は、 直接やりたい事に結びついたり、それがなかったら解決への近道になったであろう、上のお2人にポイント発行させていただきます。 すいません。でも本当に感謝しております。 ありがとうございました。

関連するQ&A

  • excel 2003 オートフィルタ!

    excel 2003で、オートフィルタがうまくいきません。 A列の2行目から、1~5までの数字がランダムに並んでいるとします。 A1セルをオートフィルタし、 条件を、オプション>3を含む で指定すると、3がフィルタされてほしいのですが 1つも抽出されません。 3で始まるもだめでした・・ フィルタで抽出するマクロをくんでいて 列は、20列以上あり、 列によって、文字や数値があります。 フォームで列を選び、検索文字を入力して Criteria1:="=*" & 検索文字 & "*", Operator:=xlAnd と言う感じでフィルタしています。 文字はできますが、数値ができないのは、なぜでしょうか・・・

  • 《エクセル》 オートフィルタで指定した行だけ指定するマクロ

    いつもお世話になります。 「オートフィルタで条件を指定して行を抽出し、その行のデータを削除する」 というマクロを作成したいのですが、うまく行きません。 そのようなマクロの式か、もしくはオートフィルタを使う以外で、同じ機能を果たせるマクロがあれば、教えていただけますでしょうか。

  • オートフィルタ後の、マクロでの値の参照に関して

    オートフィルタ後の、マクロでの値の参照に関して 下記を悩んでいます。教えて頂ければ幸いです。 マクロで、あるデーター表から、オートフィルタを使用し、必要なデーターを 抽出し、マクロ内に戻し、その後の計算で使用したいと考えています。 A列、B列、C列にそれぞれ、検索条件を指定し、オートフィルタ後、下記のような状態になります。 参照したい値は、D列になります。 下記のような例では、2.5と2.7の値をマクロ内に戻したいです。 (例:オートフィルタ後) 1行  A▼  B▼  C▼  D 16行 **  **   **  2.5   20行 **  **   **  2.7 *2~15行目は見えなくなっています。 *17~19行目は見えなくなっています。 セルを参照し、マクロ内に戻すには、どのような構文(マクロ)の記述が必要でしょうか? 【備考】 ・上記の例では、セルはD16、D20となりますが、抽出条件によっては、行番号が変わってしまいます。 ・抽出後のD列のデーター数は、常に2つです。 よろしくお願いします。

  • Excelのオートフィルタでデータ抽出するマクロについて

    オートフィルタで指定した期間のデータ抽出のマクロを作成しているのですが上手くいきません。 例えばA列に 10月29日 11月1日 11月3日 11月5日 と日付を入力しており、B列、C列にデータを入力していたとして D列1行目に10月31日、D列2行目に11月4日と入力し D列1行目からD列2行目までと指定したデータを抽出するマクロを教えていただけませんか。 マクロ初心者で、困っております。どうかよろしく御願いします。

  • Excel2003 でオートフィルターの動きがおかしい

    Excel2003 SP2を使っています オートフィルタでは(1)ドロップダウンリストから抽出したいデータを指定する方法と、(2)直接抽出したいデータの入っているセルを選択してツールバーのオートフィルタのボタンを押す方法があります。 (1)の方法で指定した場合には問題ないのですが、(2)の方法でやると、たまに指定した列ではない別の列にフィルターがかかってしまう場合があります。たとえばE12のセルを選択してオートフィルボタンを押すと隣のF列にフィルタがかかり、F列のフィルタオプションを見るとE12のデータが指定されていたりします。いつもおこるわけではなく、またいつも隣の列とは限らず2つ隣の列にフィルターがかかるときもあります、データ量の多いファイルのときに起き易いようなきがします。 これはExcelのバグなのでしょうか、それとも操作方法になにか問題があるのでしょうか、よろしくお願いします。

  • EXCEL_オートフィルタで

    エクセルのフィルタについて教えてください。 オートフィルタのオプションで『で始まる』で抽出したいのですが、あるのに出てきません。 『と等しい』ではちゃんと出てきます。 でも『で始まる』で抽出したいのです。 どこかの設定がおかしいのでしょうか?? 「と等しい」のところで「あ*」と入力してフィルタてもでません。 データペースからインポートしたデータなので 文字列の先頭にスペースが入力されているかと思いましたが それもないようです。 お分かりになる方宜しくお願いします。

  • エクセル 検索マクロ オートフィルタでする方法

    はじめまして。 エクセルで上部にテキストボックスと検索ボタンを作り、 検索ボタンを押したらテキストボックスの内容を 検索し、オートフィルタで抽出するマクロを作りたいのですが、 いくら頑張ってもエラー等で作れません。 どなたかご教授ください。 A列に用語、B列に用語の説明、C列に用語の分野というシンプルな 用語集というデータです。 主にA列の用語をテキストボックスに入力し検索ボタンで検索。 部分一致でも検索され、一致するものを オートフィルタ同様に抽出するというマクロです。 結果がなければボアアップウインドウでありませんっとか出るようにしたいです。 何卒よろしくお願いいたします。

  • マクロ オートフィルタ機能について教えてください。

    Office2000の環境で、オートフィルタを使って抽出したデータをそのまま隣の列へコピー?(セル右下にあわせて十を出して左クリック+左方向へ一列分移動)を行いたいのですが、マクロを実行するとサポートしていませんと表示されます。エクセル200ではダメなのでしょうか? 又は、エクセル2000でも出来るものがありましたら誰か教えてください。

  • エクセルのオートフィルタについて

    エクセルのオートフィルタについてですが、一番取り扱いに困っている所は、社員の給与リストとかで、ある特定のデータ、例として事務員(一つの行の例えば一つのセルに名前、一つ横のセルに給与の数字(数値データ)がはいっている)を抽出した場合(事務員の記号がどこか同じ行にはいっているとして)数値の列を開いているセルで関数処理したい場合、表示されている数字だけを処理する場合と隠れている(多分)データも処理してしまう場合があり大変戸惑っています。なんとかどちらかに統一したいのですが、自分なりに調べましたが分かりません。どなたかご存知ないでしょうか。また、このオートフィルタで特定の数字や文字を抽出しようとしてもうまくいく時とそうでない時があります。なぜなのでしょうか。これはバグと考えても?

  • エクセル オートフィルター

    オートフィルターについて教えて下さい。 同じシート内で、独立した複数のオートフィルターを用いることは出来ますか。下に示すような場合にAとB列に独立してオートフィルターを設定して、果物を抽出して、CとD列には野菜だけを抽出する。みたいなイメージです。オートフィルターやマクロを用いないやり方で他のやり方でもできる場合は教えて下さい。    A    B      C    D 1  りんご 果物   りんご  果物 2 キャベツ 野菜  キャベツ  野菜 3  イチゴ 果物   イチゴ  果物

専門家に質問してみよう