• ベストアンサー

Excelで検索を簡単に実行したい

ExcelでCtrl+Fの検索ではなく、セルに検索したいキーワードを入力、 ヒットすると結果のセルに飛ぶ、というような検索方法がないかと探していました。 そしてこちら(http://okwave.jp/qa378182.html)の内容が 自分の希望と同じであったので、参考にさせていただいたのですが ちゃんとヒットしません。 具体的には、検索したい列はB列で、テストとしてここに 1~10の数字を入力します。セルのA2に検索したい数字を入れて Enterを押すと、何行かはちゃんと検索できるのですが、途中から その数字は確かにB列にあるのに見つかりませんという結果 になってしまいます。 A2にキーワードをいれ、B列の検索をしたいので、上記ページに ありましたVBAを下記のように一部修正をしました。 Set myRange = Range("B1:" & Cells(Rows.Count, 5).End(xlUp).Address).Find(Range("A2").Value, lookat:=xlWhole) どこか他に間違っている箇所がありますでしょうか。 よろしくご指導ください。

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

> Cells(Rows.Count, 5).End(xlUp).Address というコードは、E列(列番号5)においてデータのある最下行の アドレスを返します。ここで、仮に E 列にデータがなければ どうなるでしょうか? 結果は、「$E$1」が返ってきます。 > Range("B1:" & Cells(Rows.Count, 5).End(xlUp).Address) というのは、「B1:$E$1」というセル範囲になりますので、B1 セル に検索値がなければ「見つかりません」といことになるでしょう。   1. Range("B1:" & Cells(Rows.Count, 2).End(xlUp).Address)   2. Range("B1:" & Cells(Rows.Count, "B").End(xlUp).Address) 1 または 2 のいずれかに修正してみて下さい。

omochi1020
質問者

お礼

教えていただいた方法で修正できました。 また丁寧にご解説いただきありがとうございます。 これを機にVBAを勉強してみたいと思います。 ありがとうとございました!

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

B列を検索したいのであれば Cellsの2番目引数は 2になると思いますよ 5だと E列になってしまいます 期待した結果と実際の結果を具体的に書いてみましょう

omochi1020
質問者

お礼

cells は列の引数なのですね、分かりました。 これを機会に、VBAを勉強してみたいと思います。 ご解説いただき、ありがとうございました!

関連するQ&A