• ベストアンサー

検索について

前回、QNo.2861578にて質問した物です。 早とちりして、解決としてしまいました。 前回の内容は、エクセル付属の検索と同じ事をマクロで実行したくて、具体的には、”次を検索”という事をしたいです。 前回、教えて頂いた内容で複数を検索することは出来たのですが、”次を検索”というボタンを作るにはどうすればよいのでしょうか? プログラムの途中で止めて、ボタンを押すと次のセルを表示させたいです。 すいません。宜しく御願いします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

最初に検索してシートに制御を戻し、再度「次へ」で検索するなら2つのマクロを作成し、変数を引き継ぐのが簡単と思います。 変数値をマクロより前で宣言することで、どちらのマクロからも見えるようにしています。 一度「検索」マクロを動かしてから「次検索」マクロを実行してみて下さい。動作が確認できたらボタンに割り付けると良いでしょう なお変数は面倒でも明示的に宣言される方が良いと思います。 Dim 検索キー As String Dim 検索範囲 As String Dim AdrFirst As String Dim FoundCell As Range Sub 検索() ' 選択 = 1  Test用  ' 検索キー = "AB" Test用  If 選択 = 1 Then   検索範囲 = "C:C"  Else   検索範囲 = "D:D"  End If  With Worksheets("sheet1")   Set FoundCell = Columns(検索範囲).Find(検索キー)   If FoundCell Is Nothing Then    MsgBox 検索キー & "は見つかりません。", vbExclamation   Else    AdrFirst = FoundCell.Address '元のマクロに追加    FoundCell.Select   End If  End With End Sub Sub 次検索()  Set FoundCell = Columns(検索範囲).FindNext(FoundCell)  If FoundCell.Address = AdrFirst Then   MsgBox ("検索は終了しました")  Else   FoundCell.Select  End If End Sub 上記マクロは同じFormのコードシートに記述してください。

koolm
質問者

お礼

返信いただいたのに、返信が遅くなりすいませんでした。 zap35さんのを使わせていただきました。 完成を書き込もうかとも思ったのですが、ほぼzap35さんのままなのでやめておきます。 自分での変更点は、検索をもう一周IF分を追加したのみです。 今はとりあえず、ある程度の理解なのでもう少し時間が出来た時にFoundCell等細かいところを勉強したいと思っております。 このたびは、本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • pauNed
  • ベストアンサー率74% (129/173)
回答No.1

こんにちは。 >プログラムの途中で止めて、 『何も作業をせずに』 >ボタンを押すと次のセルを表示させたいです。 の場合、単純にLoopさせてはどうですか? Sub sample()   Dim 選択   As Long   Dim 検索範囲 As String   Dim FoundCell As Range   Dim 検索キー   If 選択 = 1 Then     検索範囲 = "C"   Else     検索範囲 = "D"   End If   With Worksheets("sheet1")     .Activate     With .Columns(検索範囲)       Set FoundCell = .Find(検索キー)       If FoundCell Is Nothing Then         MsgBox 検索キー & "は見つかりません。", vbExclamation       Else         Do           FoundCell.Select           If MsgBox("next?", vbYesNo) = vbNo Then Exit Do           Set FoundCell = .FindNext(FoundCell)         Loop       End If     End With   End With   Set FoundCell = Nothing End Sub 見つかる度に何らかの作業して、次を検索する場合はFindメソッドの引数Afterを指定すれば 元のSub 検索()を利用すれば良いと思います。 『検索キー』の内容がわかりませんので何とも言えないですが、 Findメソッドのヘルプを確認してみてください。 引数は都度指定するようにしたほうが良いと思います。

koolm
質問者

お礼

回答いただいたのに、返信が遅くなってすいません。 使用用途としてzap35さんのほうが近かったのでzap35さんのを使用させていただきました。 pauNedさんのも試させてもらいました。 確かに、メッセージボックスだけですみましたね。 もう少し、頭をやわらかくして組みたいと思います。 返信ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel97 マクロで検索

    Excel97を使っています。 「マクロの記録」でセルの値を検索して記録し、そのまま「マクロの実行」で実行するとうまくいくのに、コマンドボタンから呼び出すと、「実行時エラー1004:RangeクラスのFindプロパティを取得できません」と出ます。ヘルプにもないようで困っています。 どのようにしたらよいのでしょうか? 教えてください

  • エクセルの表にボタンを付けたい

    エクセルの初心者です。 エクセルのセルに「実行1」みたいなボタンを付けて、そこをクリックすれば、「マクロ1」を実行し、「実行2」みたいなボタンをクリックすれば「マクロ2」を実行するようにしたいのですが。 ○ マクロは、エクセルで「マクロ記録」から作成したもので、プログラムは出来ません・

  • EXCEL・・検索ボタンをクリックするとマクロが実行されるようにしたい

    EXCELでSheet1にデータを入力、Sheet2に検索結果抽出フォームを作成してあります。セルにキーワードを入力しマクロの実行でデータの抽出ができるように出来上がっています。 そこで、セルに入力→ツールバーからマクロの実行という作業を検索ボタンを作成し一発で検索ができるようにしたいのです。 キーワードの入力セルはC:3です。 よろしくお願いします。

  • 検索の方法(エクセル マクロ)

    マクロは記録マクロしかできない超初心者です。 エクセルのsheet1のA1のセルに入っている内容(都度変更)と同一のセルをsheet2で検索し、カーソルをそこに移動させるマクロ記述をしたいのですが、どうなりますか。 記録マクロで、sheet1のA1をコピーし、sheet2に移動して検索窓で貼り付けて「次を検索」とやったのですが、記述をみるとA1の内容がそのまま記述されていて汎用性が無いようです。 よろしくお願いいたします。

  • マクロ 検索について

    こんにちは。マクロでの質問ですが、 【大学名リスト】というシートで作成したリストから検索してきたものを【検索ボタン】というシートのセルにコピペするマクロをボタンに登録しました。何度押しても検索してくれてしまうのですが、このボタンに登録したのは1回だけ実行して、もう一つのマクロで次を検索してくれるように作りたいのですが… Sub Macro1() ' ' Macro1 Macro ' ' Sheets("A.【大学名リスト】").Select Cells.Find(What:=Sheets("B.【検索ボタン】").Range("C8"), After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ , SearchFormat:=False).Activate Selection.Copy Sheets("B.【検索ボタン】").Select Range("E8").Select ActiveSheet.Paste End Sub 数値の検索だと1回だけで止まってくれるのですが、数式にすると何回も可能になってしまうのはなぜなのでしょうか。 あと、実行すると【大学名リスト】のシートで作成したリストから、【検索ボタン】のシートのあるセルにキーワードを入力すると、隣のセルに5つの候補を表示させるマクロも教えていただきたいです。

  • エクセル内のオートシェイプ(楕円)内の数字検索

    Excel マクロでオートシェイプ(楕円)内の数字を検索するマクロを探しています。 数字は同時に複数検索できるように、シート内の複数のセルに数字を入力してボタンを押すと 検索が開始されるような物が有ればよいのですが。 下記のアドレス回答が近かったのですが オートシェイプ全種類の検索となってしまう 同時に複数の数字の検索が出来ないなどの 問題が有ります。 http://okwave.jp/qa/q4407755.html

  • エクセル エンター検索 delでクリア

    エクセルのマクロで住所録の入っているシートから宛名、概要のはいっている2列からフィルターオプションを使って検索のマクロと検索結果を削除するマクロを作りました 検索用のワードを入れるセルは 宛名用C3、概要用D3 に作っており、そこにワードを入力後にマクロを割り当てたボタンを押して「検索」、「クリア」のマクロを実行させています。 このマクロを検索したいワードをC3またはD3に入力し確定することにより「検索」マクロを実行させ、入力したワードをデリートすることで「クリア」マクロを実行させたいと考えてます 色々な質問サイトを検索して、シートのチェンジをするものを書き込んで試しているのですがマクロが動いてくれません 検索だけをやるためにサイトに載っていたチェンジイベントの書き込みを参考にメッセージボックスでは動かせたのですがマクロ名を入れると何も動きません 色々なサイトの記載を試しては消し、試しては消すを繰り返しています エクセル初心者でサイトのかじり読みでは先に進まなくなりましたので教えて下さい

  • 検索結果をセルに表示させるマクロ

    こんにちは。 エクセルのマクロ初心者です。 シート1に作ったあるリストから、シート2のあるセルにキーワードを入力すると、隣のセルに検索結果を表示させるマクロと作りたいのですが…。 エクセルの検索機能を使って、キーワードを入力し、次を検索をクリックすると、シート1のリストの中の部分的に合致するセルをカーソルは選択しますよね? その選択したセル内容をシート2のセルに表示させる方法がわかりません…。 アドバイスいただけないでしょうか。

  • EXCELで行を検索選択し印刷するマクロを組みたい

    EXCELのマクロについて教えてください。 検索により選択した複数のセルを 行単位で印刷することはできるでしょうか? たとえば住所録を作ったとして どこかに「東京都」と入れ ボタンを押すと 東京都が含まれる複数の行を 1枚で印刷できるようにしたいです。 なお、検索については特定の列のみを 対象にします。 引っ越し前の住所が別の列に書かれていても これは無視するという感じです。 マクロについてはまったくの初心者です。 よろしくお願いいたします。

  • エクセルVBAの、「元に戻す」ボタンについて

    エクセルVBAの、「元に戻す」ボタンについて エクセル2007を使用しています。 そこで、マクロを書いているのですが、 マクロを実行すると、エクセル画面上の「元に戻す」ボタンが効かなくなってしまいます。 マクロで変更したセル内容等が元に戻せないなら納得できるのですが、 エクセル上で、手入力で変更した、マクロ実行直前の状態にも戻せません。 (手入力で変更した内容と、マクロで実行した内容は、別の物です) しかも、「Worksheet_SelectionChange」を設定しているため、手入力で何か変更し、 他のセルをクリックしたらもう、手入力した内容を元に戻ないため、 事実上エクセル画面上の「元に戻す」ボタンはないに等しいです。 このようなものなのでしょうか? もし回避策とうあれば、 情報いただけますとありがたいです。よろしくお願いいたします。

このQ&Aのポイント
  • ブラザー製品DCP-J526Nのmobile connectアプリがオフラインから復帰しない問題について解決策を探しています。
  • 製品登録後に一度オフライン状態になり、再びオンラインに戻っても印刷可能にならない現象が発生しています。
  • 他の環境や同じAndroid端末では問題なく動作しているため、mobile connectアプリ自体の不具合ではないかと考えています。
回答を見る

専門家に質問してみよう