• ベストアンサー

エクセル内で複数の文字(50個ぐらい)を一括で検索したい

タイトル通りなのですが、エクセル内の文字列で 特定の複数(50個ぐらい)の文字を一括検索したいのですが、 どうすれば 検索できますか? 決して検索後に、別の文字に置き換えや、 複数のエクセルを一括検索したいとまでは言いません。 一つのエクセル内で複数(50個ぐらい)の文字を検索し、 ヒットしてくれれば 後はヒットした文字列を手動で 削除していくので、検索できるだけで構わないです。 もちろん 贅沢を言えば、ヒットした文字列の 文字色or文字列の枠内か枠が色付きになってくれると ひと目でヒットしている場所が分かり、助かるのは 事実ですが、簡単に できる方法ってありますか? 複雑なマクロを使うことになるのでしょうか? どなたかご存知のかたがいらっしゃれば 教えていただけないでしょうか? なにぶん無知なほうなので、面倒かと思いますが、 具体的に教えていただけると幸いに思います。 どうぞよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.5

No2 merlionXXです。 > 検索したい複数の文字は どこに設定すれば よろしいでしょうか? 「A1セルからA50セルまでの各セルにそれぞれ検索したい文字があるとします。」と書いておいたのですが、意味が伝わらなかったのでしょうか? A1からA50まのの各セルに設定してください。 なお、検索範囲はマクロ実行前に選択(セレクト)しておいてくださいね。 > 後、例:16F~70Fなど、範囲を決めての英数字の検索等も可能ですか? では、16F~70Fを検索するマクロです。 Sub 連続検索02() For n = 16 To 70 '16~70まで Set c = Selection.Find(What:=n & "F", LookAt:=xlPart) '選択範囲を検索(16F~70F) If Not c Is Nothing Then 'あったら fAd = c.Address 'セル番地を控える Do '繰り返す i = i + 1 'カウント c.Interior.ColorIndex = 8 'セル着色 Set c = Selection.FindNext(c) '連続検索 Loop Until c.Address = fAd '一巡するまで'繰り返し End If Next n '次の検索文字で繰り返す Set c = Nothing MsgBox i & "件を発見しました。", vbInformation, " ( ̄ー ̄)v" End Sub

orangeyo
質問者

お礼

再度ご回答していただき、ありがとうございます! >「A1セルからA50セルまでの各セルにそれぞれ検索したい >文字があるとします。」と書いておいたのですが、 >意味が伝わらなかったのでしょうか?  違う意味に履き違えていたみたいで、  理解できていませんでした;ごめんなさい; 書いていただいていた通りに実行したところ、 完璧に検索できました! 感動です♪ 16F~70Fの検索まで ご親切に教えていただき、 本当に感謝の気持ちでいっぱいですm(。_。;))m どうもありがとうございました(o*。_。)o

その他の回答 (4)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

次の方法は如何でしょうか。 (1)特定の文字列を別シートのA1:A10に設定、その範囲を選択した状態で名前ボックス(数式バーの左隣欄)をクリックして任意名称(仮に特定文字)を入力 (2)検索範囲(仮にA1:C50)を選択→書式→条件付き書式→「数式が」、=VLOOKOP(A1,特定文字,1,FALSE)=A1→書式→パターンタブで任意色を選択→OK

orangeyo
質問者

お礼

ご回答、ありがとうございます^^ ご丁寧に書いていただき、とても感謝致します。 ただ、私のやり方が悪いせいか うまく出来ませんでした;; せっかく ご回答いただいたのに、思うようにならず、 申し訳ございません;; ご回答 ありがとうございました(o*。_。)o

noname#204879
noname#204879
回答No.3

[回答番号:No.1この回答への補足]に対するコメント、 式「=COUNTIF(Z1:Z50,A1)=1」は =COUNTIF($Z$1:$Z$50,A1)>0 とするのが正しいです。

orangeyo
質問者

お礼

回答、ありがとうございます^^ tortue2009様の補足とゆうことで、tortue2009様の 情報を元に式を実行させてもらってみたところ、 無事に検索が出来ました♪ 色まで付いて感動です! ありがとうございました^^

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

複雑ではないマクロはどうでしょう? A1セルからA50セルまでの各セルにそれぞれ検索したい文字があるとします。 検索したい範囲を選択した上で下記のマクロを実行してみてください。 Sub 連続検索() For Each r In Range("A1:A50") '指定の各検索文字につき Set c = Selection.Find(What:=r.Value, LookAt:=xlPart) '選択範囲を検索 If Not c Is Nothing Then 'あったら fAd = c.Address 'セル番地を控える Do '繰り返す i = i + 1 'カウント c.Interior.ColorIndex = 8 'セル着色 Set c = Selection.FindNext(c) '連続検索 Loop Until c.Address = fAd '一巡するまで'繰り返し End If Next r '次の検索文字で繰り返す Set c = Nothing MsgBox i & "件を発見しました。", vbInformation, " ( ̄ー ̄)v" End Sub

orangeyo
質問者

補足

回答 ありがとうございます^^ ご丁寧に書いていただき、感謝いたします。 私はマクロに ほとんど携わったことがないのですが、 一発で出来そうに思い、私にも できそうなら 是非やってみたいと思いました。 ただ、検索したい複数の文字は どこに 設定すれば よろしいでしょうか? 後、例:16F~70Fなど、範囲を決めての 英数字の検索等も可能ですか? (無理なら 例:16Fから70Fまで一つ一つでも構いません。) 質問だらけで申し訳ございません;;

回答No.1

条件として 特定の複数(50個ぐらい)の文字を一括検索する 50個を どこかのセル範囲に入力する 例:Z1:Z50セル範囲 調べたい文字列のセル範囲が A1:X50の場合 A1:X50を ドラッグ(範囲選択)してから ツールバー [書式]→[条件付き書式]で [数式が▼]にして =COUNTIF(Z1:Z50,A1)=1 [書式]クリック  [セルの書式設定]で 文字色or文字列の枠内か枠が色付き (お好きなように)

orangeyo
質問者

お礼

tortue2009様の情報を元に、回答番号No.3の mike_g様の補足と併せて実行してみたところ、 無事 検索することが出来ました♪ ありがとうございました^^

orangeyo
質問者

補足

とても分かりやすく回答していただき、 ありがとうございます^^ 分かりやすく丁寧に書いていただいたので、 無知な私でも とても操作が やりやすかったです。 ‥しかし、書いていただいた通りに実行したのですが なぜか何も起こりませんでした‥;; おそらく 私のやり方が 悪いと思いますが、 何度 繰り返してもダメでした‥;; せっかく回答していただいたのに すみません;; でも、分かりやすい説明に とても感謝しています(*^-^*) ありがとうございました。