
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
マクロでやる必要はなく、エクセルの検索機能で可能です。
全シートを選択した状態で検索すれば、全シートが検索範囲になります。
添付図では『すべて検索』の例を示していますが、通常の『検索』でもよいです。
リスト化されるかどうかの違いです。

No.3
- 回答日時:
わたし流にアレンジしてみました。
やってみると、p1:のジャンプ先が必要ありません。xlWholeiにいているので、入力にはワイルドカードが利きます。Application.Goto を使うのがミソでしょうか。
それはともかく、ここの掲示板の質問で、マクロで、ワークブック全体の検索を既存の検索を操作してできないのかな、という質問がでましたが、わたしにとっては難問のひとつです。
'//標準モジュール
Sub SearchText()
Dim s As Variant
Dim sh As Worksheet
Dim FirstAddress As String
Dim x As Range
s = Application.InputBox("検索文字列=")
If s = False Then Exit Sub
For Each sh In ActiveWorkbook.Worksheets
Set x = sh.UsedRange.Find(What:=Trim(s), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows)
If Not x Is Nothing Then
Application.Goto x
MsgBox sh.Name & "!" & x.Address
FirstAddress = x.Address
Do
Set x = sh.UsedRange.FindNext(x)
If FirstAddress = x.Address Then Exit Do
Application.Goto x
MsgBox sh.Name & "!" & x.Address 'メッセージボックスの前にセルに飛ぶ
Loop
End If
FirstAddress = ""
Next
End Sub
No.2
- 回答日時:
No1です
『検索値を含むシートのみ表示状態にする』ということで良いのなら、こんな感じでいけるのではないかと思います。
Sub Sample()
Dim str As String
Dim sh As Worksheet, rg As Range
str = InputBox("検索文字列=")
If str = "" Then Exit Sub
For Each sh In Worksheets
Set rg = sh.Cells.Find(what:=str, LookAt:=xlWhole)
sh.Visible = Not rg Is Nothing
Next sh
End Sub
No.1
- 回答日時:
こんにちは
セル範囲内の文字列を検索するなら、Range.Findメソッドを利用するのが手っ取り早いと思われます。
複数シートをまとめては無理っぽいので、各シートをループして検索すれば実現できるでしょう。
https://docs.microsoft.com/ja-jp/office/vba/api/ …
>検索に含むシートのみ表示とかできますでしょうか
シートを順に検索して、1つでも見つかればそのシートは表示、無ければ非表示にすればよさそう。
https://docs.microsoft.com/ja-jp/office/vba/api/ …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 16:07
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) VBA 検索と入力 Excel ブック ぶぶぶ シート ししし 列V 検索対象の列です 最終行は、お 6 2023/05/17 01:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) Excelでの検索結果を含む行だけを表示させたい 5 2023/03/10 17:08
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
- Excel(エクセル) 【エクセル】COUNTIFの検索条件が可変する数字の場合の数式 1 2022/09/27 15:34
このQ&Aを見た人はこんなQ&Aも見ています
-
性格いい人が優勝
できるだけ性格いい人になって回答をお願いします。
-
エクセルのマクロで全シートを検索したい
Excel(エクセル)
-
EXCELマクロで全シート対象の検索マクロを教えて
Excel(エクセル)
-
excel2010 マクロで複数シート検索し、一致した行をコピーしたい
Excel(エクセル)
-
-
4
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
5
[Ctrl]+FをVBAで表現
Visual Basic(VBA)
-
6
Excel VBAでの全ワークシート検索について
Visual Basic(VBA)
-
7
VBA 検索して一致したセルへジャンプさせたい
その他(プログラミング・Web制作)
-
8
EXCEL VBA でCTRL+Fのダイアログからすべての検索で一覧表
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【 Excel】シートの見出しに自...
-
コマンドボタンがデザインモー...
-
マクロを特定の複数シートで実...
-
エクセルでシートの並び替えで...
-
マクロを複数シートに実行する...
-
EXCELでマクロを使わずに図形の...
-
EXCELでワークシートを開いたら...
-
エクセルを開いたとき常に同じ...
-
Excelのマクロの呼び出し元を知...
-
Excelマクロ(Range)につ...
-
EXCELでシート名を含む数式を作...
-
エクセルシートのセルに現在時...
-
エクセルVBAでcmbBoxのプロパテ...
-
Excelで,特定のシートを開いた...
-
エクセルで回数をカウントする...
-
マクロでのシートコピー数制限?
-
メッセージボックスでシート名...
-
ExcelのSheetに作られたMacro1...
-
Excel:複数シートから条件に合...
-
エクセル2013でマクロのボタン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
マクロを複数シートに実行する...
-
【 Excel】シートの見出しに自...
-
エクセルを開いたとき常に同じ...
-
EXCELでワークシートを開いたら...
-
エクセルでシートの並び替えで...
-
EXCELでマクロを使わずに図形の...
-
Excelのマクロの呼び出し元を知...
-
マクロを特定の複数シートで実...
-
メッセージボックスでシート名...
-
マクロ 各シートの決められた位...
-
エクセルの複数のワークシート...
-
VBA シート名を先月の名前に...
-
EXCELの起動時に常に同じ...
-
EXCELのエラー
-
エクセルで、マクロボタンの表...
-
エクセルVBAでcmbBoxのプロパテ...
-
VBAで条件によってシート見出し...
-
エクセル・複数のシートを一度...
-
エクセルで回数をカウントする...
おすすめ情報
s = InputBox("検索文字列=")
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
Set x = sh.Cells.Find(what:=s)
If x Is Nothing Then GoTo p1
MsgBox sh.Name & x.Address
b = sh.Name & x.Address
sh.Activate
x.Activate
'---
Do
Set y = sh.Cells.FindNext(after:=ActiveCell)
If y Is Nothing Then GoTo p1
If sh.Name & y.Address = b Then GoTo p1
MsgBox sh.Name & y.Address
y.Activate
Loop
p1:
Next
End Sub
上記をやりましたが、うまくいかないです。
キャンセルを押すとループになってしまします
全シートから検索はどのようにしたらよいのでしょうか