
エクセルのシートにテキストボックスとコマンドボタンを配置してシート上のデータを検索することは可能でしょうか?今現在はB列に、複数の文字データが入力してあるので、オートフィルタのオプションから「を含む」で検索してます。
イメージとしては、オートフィルタのオプションから「を含む」を選んでから検索しなくても予めシートに用意してあるテキストボックスに検索したい文字を入れてボタンを押すと、オートフィルタで検索したときと同じような結果が得られるようにしたいと思ってます。
例)
A B C
--------------
1 血液型
2 A
3 B
4 O
5 AB
上のような表があったとして、テキストボックスにAと入力してボタンを押すとB2とB5が表示されるようにしたと思ってます。いい方法があればご教示願います。
No.1ベストアンサー
- 回答日時:
シートにテキストボックス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です。
機能は「を含む」です。つまり文字列のどこにでもテキストボックスに入力した文字が含む行を表示します。
ではでは
No.3
- 回答日時:
例の場合ですと、
検索する列の見出しと抽出条件(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
多少わかりにくいと思うので不明点があればまた質問してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで時刻(8:00~20:00)...
-
エクセルでオートフィルタのボ...
-
エクセルのオートフィルタで最...
-
Excelのオートフィルタで非表示...
-
エクセル フィルタで抽出したデ...
-
エクセルの偶数行(奇数行)の抽出
-
エクセルのオートフィルタで抽...
-
スプレッドシートのチェックボ...
-
【Excel】行に複数回出てくる人...
-
エクセルで、条件に一致した行...
-
エクセルで特定のデータの一部...
-
ACCESSでスペースの抽出
-
access マクロでのフィルタの...
-
オートフィルタで3つ以上の条...
-
【excel】リスト内の条件にあっ...
-
(EXCEL)オートフィルタで折りた...
-
エクセル、オートフィルタで最...
-
Excelのフィルターで抽出した状...
-
Excelマクロ初心者なのですが、...
-
Excel2003 オートフィルタで「...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでオートフィルタのボ...
-
エクセルで時刻(8:00~20:00)...
-
エクセルのオートフィルタで最...
-
Excelのオートフィルタで非表示...
-
エクセル関数で、数字の入った...
-
エクセルの偶数行(奇数行)の抽出
-
Excelで、ブック中すべてのシー...
-
access マクロでのフィルタの...
-
Excelのフィルターで抽出した状...
-
エクセルで、条件に一致した行...
-
Excel共有ブックのオートフィル...
-
オートフィルタで選択したデー...
-
エクセルにて、フィルタをかけ...
-
【EXCEL】条件に一致した最新デ...
-
可視セルを対象としたcountifが...
-
【Excel/関数/条件付き書式】月...
-
【excel】リスト内の条件にあっ...
-
なぜShowAllDataだとうまく行か...
-
Excel2003 オートフィルタで「...
-
データの抽出を教えてください
おすすめ情報