出産前後の痔にはご注意!

Excel2013で、ワークシート内に検索窓と検索ボタンを設定したいのですが、(control+Fでやらずに、検索語句を入力しポチっと検索したいのです。Web検索のような…)
VBAやマクロは全くの無知と言っていいほどの者なので、コピペや分かりやすい説明でお願い致します…。

仕事で使っているワークシートを引き継ぎのためにわかりやすくしたいのです。

イメージは……検索窓に語句を入力→検索ボタンクリック→検索→該当語句が含まれるセルへ飛ぶ※ない場合、「該当キーワードがありません」とメッセージが出る

のような感じです。

どうかよろしくお願いいたします。

質問者からの補足コメント

  • tom04様、回答ありがとうございます。
    複数の場合を想定するのを忘れておりました…。
    複数の場合は、①検索した際に「●件あります。」のようなメッセージが出て、検索ボタンを押すごとに次の該当語句進む

    あるいは…

    ②検索した際に「●件あります。」のようなメッセージが出て、control+Fのすべて検索をクリックしたようなリスト(?)が出る感じが良いです

    よろしくお願いいたします。

      補足日時:2017/11/21 14:24
  • ありがとうございます。

    お恥ずかしいのですが…コードをペーストする場所がわからずで…。コマンドボタンをダブルクリックしてコードを入力する画面にペーストしたのですが、検索されず…。
    無知で申し訳ありません。
    よろしくお願いいたします。

      補足日時:2017/11/21 16:29

A 回答 (3件)

続けてお邪魔します。



>コマンドボタンをダブルクリックしてコードを入力する画面に・・・

コードはまったく一緒です。
デザインモードのままでコマンドボタンをダブルクリックすると

Private Sub CommandButton1_Click()

End Sub

の2行だけの表示になり、その間の行でカーソルが点滅しているはずです。
そこへ前回のコードの2行目~最後の行(End Sub)のひとつ前の行までをそのままコピー&ペーストし、
デザインモードを解除 → コマンドボタンをクリックしてみてください。

※ 通常のマクロとしてやりたい場合は
ALT+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
前回のコードをすべて「Sub Sample2()」から「End Sub」までをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)マクロを実行してください。

ALT+F8キー → マクロ → マクロ実行です。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございました!!!
無事に動きました!!本当に助かりました。
ありがとうございました。

お礼日時:2017/11/21 17:00

No.1です。



>②検索した際に「●件あります。」のようなメッセージが出て・・・

リスト表示ではなく、対象セルすべてを選択するコードにしてみました。

Sub Sample2()
Dim myStr As String
Dim FoundCell As Range, FirstCell As Range, myRng As Range
myStr = InputBox("検索文字を入力")
With ActiveSheet
Set FoundCell = .Cells.Find(what:=myStr, LookIn:=xlValues, lookat:=xlPart)
If Not FoundCell Is Nothing Then
Set myRng = FoundCell
Set FirstCell = FoundCell
Do
Set FoundCell = .Cells.FindNext(after:=FoundCell)
If FoundCell.Address = FirstCell.Address Then Exit Do
Set myRng = Union(myRng, FoundCell)
Loop
MsgBox "対象セルが" & myRng.Count & "セルあります。"
myRng.Select
Else
MsgBox "該当データなし"
End If
End With
End Sub

※ もちろん別シートなどに対象データを羅列することもは可能です。

まずはこの程度で・・・m(_ _)m
    • good
    • 0

こんにちは!



複数セルある場合はどうするのですかね?
とりあえず該当セルが複数あっても最初のセルのみ選択するコードです。

>検索窓に語句を入力→検索ボタンクリック
の順にするとユーザーフォームを使うか、シート上にテキストボックスとコマンドボタンを配置する必要があると思いますので、
単純に一つのマクロにしています。

Sub Sample1()
Dim myStr As String, c As Range
myStr = InputBox("検索文字列を入力")
Set c = ActiveSheet.Cells.Find(what:=myStr, LookIn:=xlValues, lookat:=xlPart)
If Not c Is Nothing Then
c.Select
Else
MsgBox "該当データなし"
End If
End Sub

とりあえず、1セルだけは選択できると思います。m(_ _)m
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング