プロが教える店舗&オフィスのセキュリティ対策術

エクセルのシートにテキストボックスとコマンドボタンを配置してシート上のデータを検索することは可能でしょうか?今現在はB列に、複数の文字データが入力してあるので、オートフィルタのオプションから「を含む」で検索してます。
イメージとしては、オートフィルタのオプションから「を含む」を選んでから検索しなくても予めシートに用意してあるテキストボックスに検索したい文字を入れてボタンを押すと、オートフィルタで検索したときと同じような結果が得られるようにしたいと思ってます。

例)
 
 A    B    C    
--------------
1     血液型     

2      A

3      B

4      O

5      AB

上のような表があったとして、テキストボックスにAと入力してボタンを押すとB2とB5が表示されるようにしたと思ってます。いい方法があればご教示願います。

A 回答 (3件)

シートにテキストボックス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です。
機能は「を含む」です。つまり文字列のどこにでもテキストボックスに入力した文字が含む行を表示します。
ではでは
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!いい感じにできました。しかしすべての列ではなくB列だけを検索したいときはどうすればいいでしょうか?

お礼日時:2008/06/03 19:26

例の場合ですと、


検索する列の見出しと抽出条件(Aを含むで検索する場合は<A>と入力)を作成します。

↓こんな感じです。
B

<A>


 A    B    C    
--------------
1     血液型     

2      A

3      B

4      O

5      AB

この状態でデータ→フィルタ→フィルタオプションでそれぞれの範囲を指定すればB2とB5が抽出されるハズです。
これは条件がいくつも指定できるので便利ですよ。

同じ表を使用してマクロを組むとこんな感じです。なお範囲選択画面でESCキーを押すとフィルタが解除されるようになってます。

Sub AdvancedFilter()

Dim mtRange As Range, jkRange As Range

On Error GoTo S1
Set mtRange = Application.InputBox("抽出元範囲を選択してください", Type:=8)

ActiveCell.Select

Set jkRange = Application.InputBox("条件範囲を選択してください", Type:=8)

mtRange.AdvancedFilter Action:=xlFilterInPlace, Criteriarange:=jkRange

GoTo S2

S1:
If ActiveSheet.FilterMode Then
ActiveSheet.ShowAllData
End If
S2:

End Sub

多少わかりにくいと思うので不明点があればまた質問してください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。教えられたとおりにやってみたいと思います。親切にご教示いただきありがとうございました。

お礼日時:2008/06/05 11:40

#1です。


> B列だけを検索したいときはどうすればいいでしょうか
B列だけを検索するようにしていますが・・・
Field:=2 がB列を指定しています。

ん?フィルタの三角が全列に表示されるから?
これはオートフィルタの機能を利用しているから仕方が無いです。
    • good
    • 0
この回答へのお礼

そうなんですね!知識不足で申し訳ありません。でもこれで十分です!活用させていただきます。ありがとうございました!

お礼日時:2008/06/05 11:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています