先ほど質問したのですが、わかりづらかったので取り消しして再度投稿いたします。 行いたいのは既存データをAND検索、OR検索して、別シートへ抽出するVBAを書きたいです。

画像

Visual Basic | Excel343閲覧xmlns="http://www.w3.org/2000/svg">50

ベストアンサー

1
画像

1人がナイス!しています

返信ありがとうございます。 まさにやりたい!と思っていた方法です。ユーザーフォームでのやり方ですが、書いていただいたコードとフォーム上のテキストボックスや検索実行のボタンと合わせるんですよね? コードを見るとTextBox1と2の記載はありますが、TextBoxに言葉を入力したときのコードが無いように思えます。フォームのことは勉強中なので的外れな質問だったらすみません。 key1 = TextBox1.Text key2 = TextBox2.Text ユーザーフォームでなくても、Excelへの入力でもよいのですが、 ↓のような方法でやりたいと思っています。 ・検索したい言葉を入力 ・検索ボタンを押す

ThanksImg質問者からのお礼コメント

たくさんの方に教えていただいたのですが、一番イメージが近かったのでベストアンサーとさせていただきます!

お礼日時:9/30 8:30

その他の回答(2件)

1

1.シート名称名称付け 既存データのシート名:「データ表」 AND検索結果書込みシート名:「AND検索」 OR検索結果書込みシート名:「OR検索」 2.「データ表」シートに「フォームコントロール」の「ボタン」を2個貼付ける。それぞれの名称を「AND検索」ボタン、「OR検索」ボタンとする。貼付図参照下さい。 3.検索ワードを書き込む表を「AND検索」、「OR検索」のそれぞれのシート上部に作成する。表の配置は貼付図と同じ位置にする。 4.依頼の検索ワードは単純に書かれていますが、通常は長い文書中に含まれているのが大半なので、文書中にあっても検索できるようにしています5.5.データ表の右端のL列、M列にその行が検索されたことが分かるように「済」を書き込むようにしています。 6.「AND検索」ボタンのClickのプロシージャに以下のプログラムを書き込みます。 Sub ボタン3_Click() 'AND検索 With Worksheets("AND検索") For n0 = 1 To 1000 If Cells(4 + n0, 12).Value = "" Then If Cells(4 + n0, 1).Value = "" Then Exit For Else Cells(4 + n0, 12).Value = "済" If Cells(4 + n0, 8).Value Like "*" & .Cells(2, 2).Value & "*" = True _ And Cells(4 + n0, 11).Value Like "*" & .Cells(2, 3).Value & "*" = True Then For n1 = 1 To 1000 If .Cells(4 + n1, 1).Value = "" Then For x = 1 To 11 .Cells(4 + n1, x).Value = Cells(4 + n0, x).Value Next Exit For End If Next End If End If End If Next End With End Sub 7.「OR検索」ボタンのプロシージャに以下のプログラムを書込みます。 Sub ボタン4_Click() 'OR検索 With Worksheets("OR検索") For n0 = 1 To 1000 If Cells(4 + n0, 13).Value = "" Then If Cells(4 + n0, 1).Value = "" Then Exit For Else Cells(4 + n0, 13).Value = "済" If Cells(4 + n0, 8).Value Like "*" & .Cells(3, 2).Value & "*" = True _ Or Cells(4 + n0, 11).Value Like "*" & .Cells(3, 3).Value & "*" = True Then For n1 = 1 To 1000 If .Cells(4 + n1, 1).Value = "" Then For x = 1 To 11 .Cells(4 + n1, x).Value = Cells(4 + n0, x).Value Next Exit For End If Next End If End If End If Next End With End Sub 各ボタンをクリックすると検索結果をそれぞれのシートに書き込まれます。 以上です。 参考までにマクロの紹介のための私のホームページ「素人が紹介する実践マクロ」 https://mymacro.web.fc2.com の左列の「サイバータイトル」の下段の「tru******さんへの回答」をクリックしてページを開いて頂くと詳細な説明と作成した「sample3.xlsm」をリンクさせていますのでご覧頂ければ幸いです。

画像

1人がナイス!しています

0

フィルターオプション使えばVBA要らないとおもうのですが、試されましたか?

返信ありがとうございます。 フィルターオプションを使うことも考えましたが、実際に検索を使うは社内の人で、Excelに詳しくない人も大勢いるため諦めました。 ↓のような方法でやりたいと思っています。 ・検索したい言葉を入力 ・検索ボタンを押す