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(エクセル)
-
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
EXCELマクロで全シート対象の検索マクロを教えて
Excel(エクセル)
-
-
4
excel2010 マクロで複数シート検索し、一致した行をコピーしたい
Excel(エクセル)
-
5
Excel内での検索結果をシートに出力したい
Excel(エクセル)
-
6
同じ作業を複数のシートに実行させるにはどうしたらいいのでしょうか
Visual Basic(VBA)
-
7
Excel VBAでの全ワークシート検索について
Visual Basic(VBA)
-
8
VBA 検索して一致したセルへジャンプさせたい
その他(プログラミング・Web制作)
-
9
Exel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について
Visual Basic(VBA)
-
10
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
11
excelのリストボックスで選択した項目をアクティブセルに入力方法
Excel(エクセル)
-
12
【エクセルで一発検索機能をつくる】
Excel(エクセル)
-
13
VBAで別ブックのシートを指定して削除したい。
Visual Basic(VBA)
-
14
特定の複数のシートに同じ処理をさせたい
Excel(エクセル)
-
15
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
16
エクセルでの検索ボックスの作り方について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【 Excel】シートの見出しに自...
-
VBAで条件によってシート見出し...
-
マクロを複数シートに実行する...
-
Excelで,特定のシートを開いた...
-
複数シートの保護・解除
-
EXCELでマクロを使わずに図形の...
-
マクロを特定の複数シートで実...
-
マクロでのシートコピー数制限?
-
EXCELでワークシートを開いたら...
-
メッセージボックスでシート名...
-
VBAで作るexcel検索窓
-
エクセルでシートの並び替えで...
-
VBA シート名を先月の名前に...
-
Excelのマクロの呼び出し元を知...
-
エクセルを閉じる際に自動保存...
-
エクセル シート保護をかける...
-
Excelでたくさんのシートで設定...
-
エクセル2000VBA コマンドボタ...
-
Excel:複数シートから条件に合...
-
マクロで複数シートに条件付き...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
マクロを複数シートに実行する...
-
【 Excel】シートの見出しに自...
-
EXCELでワークシートを開いたら...
-
エクセルを開いたとき常に同じ...
-
VBAで条件によってシート見出し...
-
EXCELでマクロを使わずに図形の...
-
マクロを特定の複数シートで実...
-
エクセルでシートの並び替えで...
-
エクセルの複数のワークシート...
-
複数シートの保護・解除
-
エクセルで複数のSheetを一括フ...
-
エクセルで回数をカウントする...
-
EXCELのエラー
-
Excel:複数シートから条件に合...
-
VBA シート名を先月の名前に...
-
EXCELの起動時に常に同じ...
-
Excelで,特定のシートを開いた...
-
Excelのマクロの呼び出し元を知...
-
メッセージボックスでシート名...
おすすめ情報
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
上記をやりましたが、うまくいかないです。
キャンセルを押すとループになってしまします
全シートから検索はどのようにしたらよいのでしょうか