- ベストアンサー
マクロを使って抽出を
エクセルで検索窓のようなものを作りたいと思っています。 A列には品番、B列にはシリーズ名、C列には対応(○×△)のような表です。 マクロを実行すると、「言葉を入力してください」のようなボックスが出て、そこに文字を入力するとオートフィルタのように抽出してくれるようなものを作りたいのですがどのようにすればいいのでしょうか? それと、検索はB2にバナナ、B8にチョコバナナ、B10にバナナドリンクのような表だとして、検索窓にバナナと入力すると、B2、B8、B10を抽出してくれるようなものを作りたいと思います。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ANo.2です。 補足に対して >Selection.AutoFilter Field:=3, Criteria1:=a, Operator:=xlAnd 上記コードを Selection.AutoFilter Field:=3, Criteria1:="*" & a & "*", Operator:=xlAnd に修正してください。 「含む」なので検索キーワードの前後に ワイルドカード「*」が必要です。
その他の回答 (2)
- nobu555
- ベストアンサー率45% (158/345)
「オートフィルタ」機能ではダメでしょうか? 「オートフィルタ」で 「バナナ」を「含む」で 表示させることは出来ます。 抽出が、別シートにコピーなら 表示された範囲を選択して貼り付ければOKです。 どうしてもマクロで言うのなら 安直ですが、上記作業を「マクロの記録」で コードを収得すればよろしいかと。 検索窓は、InputBoxを使いキーワードに変数とすればよいのでは。
補足
ありがとうございます。 オートフィルタを使いマクロの記録を行った所、 Columns("A:E").Select Selection.AutoFilter Selection.AutoFilter Field:=3, Criteria1:="=*クック*", Operator:=xlAnd Range("F326").Select End Sub になりました。 これを検索窓を表示するため、 a = InputBox("検索したい文字を入力してください。") Columns("A:E").Select Selection.AutoFilter Selection.AutoFilter Field:=3, Criteria1:=a, Operator:=xlAnd Range("F326").Select に変更したのですがうまくいきません。 どのようにすればいいのでしょうか?
- onntao
- ベストアンサー率32% (108/332)
ご質問の内容に全て具体的に答えるとなりますと 一冊の本ができそうですね ;^_^A それだけ、VBAの基礎の多くが含まれるご質問となっています 下記のような、本を購入なさってご自身で構文を作ってみて 組み立てが分からない部分や、エラーが出る部分などをご質問なされる方がよろしいかと かんたんプログラミング Excel 2007 VBA 基礎編 http://www.amazon.co.jp/%E3%81%8B%E3%82%93%E3%81%9F%E3%82%93%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Excel-2007-VBA-%E5%9F%BA%E7%A4%8E%E7%B7%A8/dp/477413340X
補足
ありがとうございます。 下の方の補足に書いたようにうまくいきません。 アドバイスお願いします。
お礼
大変返事が遅くなりましたが無事できました。 ありがとうございました。