• 締切済み

VBA Advancedfilterの使用法

やりたい事 1行目は項目行でズラズラ並んでます。2行目以降がデータです。 A列は商品名です。A列で検索をかけ、商品名1、商品名2、、、、、、商品名12までをA列から探し出し、該当する行全体を別シートにコピーします。現状ではFor Nextループ2重で検索し、とりあえず動作するようになってますが、filterを使った方が早くてすっきりしてると思い、変更したいのです。 ところが、autofilterの検索条件はcriteria1, criteria2と2個まで、3個以上必要な場合はadvancedfilterを使用すると、どこかで読みました。上記の例では12個ですが、実使用では数十個です。 advancedfilterの使い方がよく分りません。 MSDNより 式 .AdvancedFilter(Action, CriteriaRange, CopyToRange, Unique) CriteriaRange(検索条件範囲)が不明です。おそらくここにcriteria1,2に相当することを書くのだろうと思いますが、具体的にどう書けばいいのでしょうか?

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

ご利用のエクセルのバージョンも不明のご相談ですが、まずマクロ以前に、エクセルの使い方を勉強してください。 参照: http://www4.synapse.ne.jp/yone/excel2010/excel2010_filter21.html 最初のサンプルで「担当者」のところに「井上」「上村」の2件が並んでいますが、ここに抽出したい12件を列記します あとは手順通りフィルタの詳細設定(フィルタオプションの設定)の操作を行い、該当のデータが一網打尽で抽出できるところまで、まず手で操作して出来るようになってください。 「新しいマクロの記録」で同操作をマクロに録れば、advancedfilterをどう書けばいいのか教えてくれます。 繰り返して説明すると、advancedfilterのcriteriarangeには、サンプルで示されている通りに抽出条件をワークシート上に作成してください。もちろん、必要なら/そうしたければマクロを使ってcriteriarangeに当てるセル範囲を作成させ利用しても、構いません。

関連するQ&A