エクセルマクロで検索ボックスを作成する
エクセル2010のマクロで検索ボックスを作成したいと考えています。
質問No.4072490を参照して作成しました。
//////////////////////////////////////////////////////////
質問
エクセルのシートにテキストボックスとコマンドボタンを配置してシート上のデータを検索することは可能でしょうか?今現在はB列に、複数の文字データが入力してあるので、オートフィルタのオプションから「を含む」で検索してます。
イメージとしては、オートフィルタのオプションから「を含む」を選んでから検索しなくても予めシートに用意してあるテキストボックスに検索したい文字を入れてボタンを押すと、オートフィルタで検索したときと同じような結果が得られるようにしたいと思ってます。
例)
A B C
--------------
1 血液型
2 A
3 B
4 O
5 AB
上のような表があったとして、テキストボックスにAと入力してボタンを押すとB2とB5が表示されるようにしたと思ってます。いい方法があればご教示願います。
回答
シートにテキストボックス1個、コマンドボタン2個を配置します。
これは出来ますね。
コマンドボタン1個目は検索ボタン、2個目は解除ボタンです。
ツール→マクロ→Visual Basic Editorを選択して
シートに以下のコードを貼り付ける。
------------------ ここから下 ----------------------
Option Explicit
Private Sub CommandButton1_Click()
Rows("1:1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=2, Criteria1:="=*" & TextBox1.Value & "*", Operator:=xlAnd
End Sub
Private Sub CommandButton2_Click()
Selection.AutoFilter
End Sub
---------------- ここまで ------------------
エクセル2000です。
機能は「を含む」です。つまり文字列のどこにでもテキストボックスに入力した文字が含む行を表示します。
//////////////////////////////////////////////////////////
上記を参照して検索ボックスを作成したところ、一回目の検索とフィルタ戻しは問題なくできましたが、2回目から検索ができません。
どこか変更した方が良いでしょうか。
追加でもう一つ質問です。
検索範囲がB列に限定されてしまいます。
シート状のすべてで検索することはできるでしょうか。
お礼
ご回答ありがとうございます。 やはりシェアウェアに頼るしかないようですね・・・。 試用してみましたが、要件を満たす機能を持っているようです。