- 締切済み
マクロを使用してBook内を検索する方法
おはようございます。 質問を読んで頂き、ありがとうございます。 私が質問したいことは【マクロを使用してBook内を検索する方法】になります。 正直、マクロには詳しくないのですが色々なサイトを見ながら作っては見たものの希望道理に検索できないのが現状です。 実際に行いたい作業は、sheet1には○○市内の薬局名を入力、sheet2には△△市内の薬局名を入力、sheet3には□□市内の薬局名を入力・・といったように、1つのsheetにその市内にある薬局を打ち込みました。 そこで、マクロを実行し薬局名を打ち込むと、その薬局名の書いてあるセルに飛ぶような設定にしたいのですが、どうも上手くいきません。 例えば、sheet1内でマクロを実行した場合はsheet1内に薬局名があればセルにうまく飛ぶのですが、sheet1内にない薬局(sheet2などにある場合)は【実行時エラー オブジェクト変数またはwithブロック変数が設定されたいません】という表記が出てしまいます。 希望としては、sheet1でマクロを実行しても、全体を検索できるようにしたいのですが、可能なのでしょうか? マクロには以下のように登録しました。 Sub Macro1() ' ' ' a = InputBox("検索したい文字を入力してください。") Cells.Find(What:=a, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ , MatchByte:=False, SearchFormat:=False).Activate End Sub 稚拙な文章で大変申し訳ないのですが、マクロに詳しい方、ご教授していただけませんでしょうか? よろしく御願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17070)
質問を簡単に書けば、Sheet1の何処かのセルに「a],Sheet2の何処かのセルに「a]を入れた。両方の「a]を検索したい。でよいのでは無いか。こんなに質問文が簡単になる。2つのシートで判れば、増やしても少修正で済む場合が多い。ただし数十もシートが有るのかな。 ーーーー Sheet1とSheet2を作業グループにして、編集ー検索ー検索文字「a]で両シートを検索する。 これをマクロの記録をとって、」コードを見て、検索の都度変えるべき箇所などの対処を考えるべきとおもう。 Arrayを使うのでなく、数十のシートを作業グループ化するのなどの質問ならありえると思うが。 また検索の「オプション」で、全シート対象なら、検索場所に「ブック」がある。 ーーー マクロの記録活用を言いたい。それにはエクセルの操作(=エクセルで出来る事項)を十分知っている必要あり。
- merlionXX
- ベストアンサー率48% (1930/4007)
こんな感じではいかがでしょう? Sub TEST01() a = InputBox("検索したい文字を入力してください。") For Each ws In Worksheets Set t = ws.Cells.Find(What:=a, LookAt:=xlPart) If Not t Is Nothing Then ws.Activate t.Select Exit For End If Next If t Is Nothing Then MsgBox "見当たらないみたい。", vbCritical, "Σ( ̄ロ ̄lll)" End If End Sub
お礼
この通りやってみた所、希望通りにできました。 大変感謝しています。 本当にありがとうございました。
お礼
適切なアドバイスありがとうございます。 文章構成も含めて、勉強になりました。