- ベストアンサー
VBAで複数シートに渡る複数条件検索の方法を教えてください
- VBAを使用して、Excelの複数のシートに渡る複数条件での検索を行いたいです。現在は、IPアドレスを管理しているブックがあり、特定の条件に合致するセルまたは行を検索して移動したいと考えています。
- VBAで複数シートに渡る複数条件検索を行う方法がわかりません。IPアドレスを管理しているExcelブックに、検索フォームを作成し、テキストボックスに条件を入力して検索を行うことが目標です。具体的な構文や処理方法が分からず困っています。
- VBA初心者ですが、Excelの複数のシートに渡る複数条件検索を実現したいです。IPアドレスを管理しているブックに「検索」ボタンを作成し、ユーザーフォームで条件を入力して検索を行い、結果を表示させたいです。構文や処理の流れが分からないため、どのように実装すれば良いか教えていただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
合致したセルがあったとしてどうしたいのでしょうか。 そのセルの内容を修正したいとかであれば、いったんマクロを終了して ユーザーフォームを閉じる必要があるので、使いやすいとは思えないのですが とりあえず、考え方です。 Private Sub CommandButton1_Click() For i = 2 To Worksheets.Count For j = 2 To Worksheets(i).UsedRange.Rows.Count If Worksheets(i).Range("B" & j).Text = TextBox1.Value And _ Worksheets(i).Range("C" & j).Text = TextBox2.Value And _ Worksheets(i).Range("D" & j).Text = TextBox3.Value And _ Worksheets(i).Range("E" & j).Text = TextBox4.Value Then MsgBox i & "番目のシートの" & j & "行目に存在します。" Exit Sub End If Next Next MsgBox "存在しませんでした" End Sub 最初の For i=2 To で2番目のシートから最後のシートまでの繰り返し 次の For j=2 To でそのシートの2行目から最後の行までの繰り返し If文で B列、C列、D列、E列とそれぞれのテキストボックスの文字が同じであれば メッセージを出して終了です。 アドバイスですが、データのシートを 区分け IP マスク とひとつのシートにまとめてしまったほうが使いやすいはずです。 区分けごとに別シートに抽出する必要があれば もうひとつ抽出のシートを準備して A1セルに 区分けする 内容 をいれたら、条件にあったデータがそのシートに表示される 仕組みを考えます。 シートは2枚ですみます。検索や移動も簡単です。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17070)
>数字に全て合致したセルまたは行 この検索について 4つのデータの実例と複数シートの実例と それによって、複数のシート上で行うべきことを、(プログラムを離れて)文章で!(箇条書きで)、説明してください。 >または行 セルなら判るが、なぜ「行」が出てくるのですか。 >へシートを跨いで移動する これは何のこと。移動してどうする? 単に10枚のシートの範囲に、検索範囲を広げるということでは。 10枚のシートはエクセルでの「作業グループ」にして、ある1語句を10シート全部について、1検索で検索できるようだが。 よくあるケース(例えば10枚のシートをすべて探して、該当があれば何かするなら普通のケースと思う)でもなさそうなので。 >見つかった場合にどういうことをするのか >NWエンジニアといっている割には他人に情況を説明するのが不十分では。
お礼
どうもありがとうございます。 説明が足りず申し訳ございません。 エンジニアとしてもまだまだということがわかりました。 それはさておき、 ただやりたいことは、 同じブック中の10シート以上ある中の全シートを検索対象として ・ユーザーフォーム上の4つテキストボックスにそれぞれ数字を入力。 ・同ユーザーフォーム中にあるコマンドボタンを押すと、上記で入力した数字4つに すべて合致するセルを検索する。 ・見つかった場合に該当するセルへ移動する。 ・見つからない場合はメッセージを返す。 ということですが、まだ足りない点はご指摘頂ければ幸いです。
お礼
ありがとうございます!! 本当に助かりました。 今後ともよろしくお願い致します。