- 締切済み
エクセル 検索マクロ オートフィルタでする方法
はじめまして。 エクセルで上部にテキストボックスと検索ボタンを作り、 検索ボタンを押したらテキストボックスの内容を 検索し、オートフィルタで抽出するマクロを作りたいのですが、 いくら頑張ってもエラー等で作れません。 どなたかご教授ください。 A列に用語、B列に用語の説明、C列に用語の分野というシンプルな 用語集というデータです。 主にA列の用語をテキストボックスに入力し検索ボタンで検索。 部分一致でも検索され、一致するものを オートフィルタ同様に抽出するというマクロです。 結果がなければボアアップウインドウでありませんっとか出るようにしたいです。 何卒よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- n-jun
- ベストアンサー率33% (959/2873)
#1&2です。 テキストボックスが”図形描画”を使っていると、 MsgBox ActiveSheet.TextBoxes("Text Box 1").Text こんな感じです。 コントロールツールボックスなら#2の方法です。 テキストボックスとボタンが何を使っているのか?で変わってきますよ。
- n-jun
- ベストアンサー率33% (959/2873)
#1です。 コントロールツールボックスでTextBox1とコマンドボタン1を貼付けて、 ボタンを押したらテキストボックスの値を表示するだけなら、 Private Sub CommandButton1_Click() MsgBox Me.TextBox1.Text End Sub でしょうか。 あとはこの値をフィルタの抽出条件に入れるだけです。
お礼
いろいろいじってますが、思うように機能してくれません。。 Private Sub CommandButton1_Click() MsgBox Me.TextBox1.Text Range("E2") = TextBox1 Selection.AutoFilter Field:=1, Criteria1:="=**", Operator:=xlOr Range("Book1").AutoFilter Field:=1, Criteria1:="textbox1" End Sub 現在上記のようなプログラムなんですが、 オートフィルタの抽出はできているみたいなんですが、 RANGEメソッドは失敗しましたとエラーがでます。 それと、E2というセルにテキストボックスの内容をコピーし オートフィルタの抽出条件(用語)にしています。 直接テキストボックス内に入力した文字をオートフィルタかけたい のですが・・・・
- n-jun
- ベストアンサー率33% (959/2873)
>テキストボックスと検索ボタン フォームなのかコントロールツールボックスなのかにもよりますし、取り敢えず エラーになっているコードを提示してみては如何でしょうか。 セルに検索値を入れてマクロを実行させれば、抽出するコードは作成できるのでしょうか?
お礼
ありがとうざいます。 抽出もできているのかどうなのか よくわからないんですが、 マクロの記録で特定文字のオートフィルタ抽出しかできてません。。 テキストボックス ボタン ――――――――――――――――――――――――――――― 用語 説明 分野 ○○ ○○○○ ○○○ このような構成です。
お礼
Private Sub CommandButton1_Click() Selection.AutoFilter Field:=1, Criteria1:="=*" & TextBox1 & "*", Operator:=xlOr End Sub 上記のプログラムで思うように動きました! 何度も何度もすみませんでした。 ありがとうございました!
補足
何度も何度もありがとうごじます。 Private Sub CommandButton1_Click() MsgBox Me.TextBox1.Text Selection.AutoFilter Field:=1, Criteria1:="=**", Operator:=xlAnd Selection.AutoFilter Field:=1, Criteria1:="TextBox1" End Sub 上記のようなスクリプトなんですが、テキストボックスの内容を 抽出できません・・・ これで検索ボタンを押すと、抽出項目なしで何も抽出されません。。 どうしたら良いのでしょうか・・・