- ベストアンサー
Excelでキーワード検索(異なるブックで)
現在、シートのA2にキーワード欄を設けて、A5:Z5以下にあるデータ(文字列)から 該当した文字のみサイズ変更と該当セルの色づけをVBAで行っています。 キーワードが1つずつしか検索出来ないことと、A5以下のデータ(文字列)を 別のブックから都度貼り付けることに不便を感じております。 そこでご質問ですが キーワードとデータを異なるブックで用意し、キーワード側のVBAでデータファイルを 検索し、文字サイズとセルの色づけを実施するのはVBAで可能でしょうか。 (キーワードは複数有り、増減します。) 尚、VBAは入門レベルです。 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
マクロを登録したブックのシート名Sheet1のA2以下のセルにキーワードが羅列してある 対象のブックを選んでキーワード検索する sub macro1() dim h as range dim myFile as string dim myBook as workbook dim w as worksheet dim c as range dim c0 as string myfile = application.getopenfilename(Title:="Select Target book") if myfile = "False" then exit sub set mybook = workbooks.open(filename:=myfile) for each w in mybook.worksheets for each h in thisworkbook.worksheets("Sheet1").range("A2").currentregion if h <> "" then set c = w.cells.find(what:=h.value, lookin:=xlvalues, lookat:=xlwhole) if not c is nothing then c0 = c.address do c.font.color = vbred c.font.size = 24 set c = w.cells.findnext(c) loop until c.address = c0 end if end if next next msgbox "DONE" end sub #説明不足 「該当」の具体的な条件→完全一致とする 「増減したキーワード」がどこに記入してあるのか→てきとーに拾う 「文字サイズとセルの色付け」→てきとーにしてある 対象のブックに何枚シートが含まれていてどのシートを処理したいのか→てきとーに細工してある ご利用のエクセルのバージョンも不明→どのバージョンでも一応動くようにしてある A5:Z5以下に貼り付けるのはやめて元のブックのどこにデータがあるのか不明→気にしない
その他の回答 (2)
- tsubuyuki
- ベストアンサー率45% (699/1545)
あまりにもアレかしら(笑)。 とりあえず・・「他のブックを操作する」のは自力でお調べいただくとして。 同一ファイル(同一シート)内に「キーワード」「データ」がある場合のお話です。 Sub Sample() Dim myStr As String Dim MCol As Long, MRow As Long, i As Long MCol = Cells(2, Columns.Count).End(xlToLeft).Column 'キーワードの最終列 MRow = Cells(Rows.Count, 1).End(xlUp).Row 'データ範囲の最終行 Application.ReplaceFormat.Interior.Color = RGB(255, 255, 0) '置換後の背景=黄色 For i = 1 To MCol 'キーワードの最終列まで繰り返す '置換処理(キーワードと合致するものを対象) Range("A5:Z" & MRow).Replace What:=Cells(2, i).Value, _ Replacement:=Cells(2, i).Value, _ LookAt:=xlWhole, _ ReplaceFormat:=True '←置換後の書式ON Next End Sub こんな感じで「置換機能」を使ってやると比較的早く終わります。 添付図のように、2行目に(隙間無く)キーワードを羅列してお試しくださいませ。
お礼
再び投稿いただきありがとうございます。 今までキーワードを一つ入力しては検索を行い、又、次のキーワードを入力して・・・ でしたので、複数検索が一度に可能となるだけでも大助かりです。
- tsubuyuki
- ベストアンサー率45% (699/1545)
> VBAで可能でしょうか。 と聞かれると、「出来ますよ」としか言いようがないのですが・・ 要するに、簡単に書こうと思えば、 「データファイル」を開き、そこに「キーワード」に従って色づけなりしてやれば良いです。 「キーワードが複数」であれば、その「キーワードの数だけ」繰り返してやればOKです。
お礼
ご回答ありがとうございました
お礼
お教え頂きありがとうございました。 正に知りたい内容でした。 「該当」の具体的な条件を部分一致、セルの色づけを加えるだけで、そのまま使わせて頂いております。 本当にありがとうございました。