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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
準・究極の選択
「年収1000万円で一生カレーライス」か 「年収180万円で毎日何でも食べ放題」 あなたはどちらを選びますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
エクセルのマクロで全シートを検索したい
Excel(エクセル)
-
excel2010 マクロで複数シート検索し、一致した行をコピーしたい
Excel(エクセル)
-
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
-
4
EXCELマクロで全シート対象の検索マクロを教えて
Excel(エクセル)
-
5
Excel VBAでの全ワークシート検索について
Visual Basic(VBA)
-
6
EXCEL:複数シートから特定行を一覧化したい
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
【 Excel】シートの見出しに自...
-
エクセルVBAでcmbBoxのプロパテ...
-
マクロを特定の複数シートで実...
-
複数シートにある列を削除
-
Excelのマクロの呼び出し元を知...
-
マクロを複数シートに実行する...
-
エクセルを開いたとき常に同じ...
-
EXCELのエラー
-
EXCEL(できればマクロ)で同一...
-
エクセルで複数のSheetを一括フ...
-
エクセル・複数のシートを一度...
-
複数シートの保護・解除
-
エクセルを閉じる際に自動保存...
-
エクセルで回数をカウントする...
-
エクセル ヘッダー(フッター)...
-
ExcelのSheetに作られたMacro1...
-
エクセルで、マクロボタンの表...
-
EXCELでワークシートを開いたら...
-
EXCELでマクロを使わずに図形の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドボタンがデザインモー...
-
マクロを複数シートに実行する...
-
【 Excel】シートの見出しに自...
-
エクセルを開いたとき常に同じ...
-
EXCELでマクロを使わずに図形の...
-
EXCELでワークシートを開いたら...
-
EXCELの起動時に常に同じ...
-
シートを保護した時でも並べ替...
-
エクセルでシートの並び替えで...
-
マクロを特定の複数シートで実...
-
VBA シート名を先月の名前に...
-
エクセルVBAでcmbBoxのプロパテ...
-
エクセルで複数のSheetを一括フ...
-
EXCELのエラー
-
エクセル・複数のシートを一度...
-
VBAで条件によってシート見出し...
-
ExcelのSheetに作られたMacro1...
-
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
上記をやりましたが、うまくいかないです。
キャンセルを押すとループになってしまします
全シートから検索はどのようにしたらよいのでしょうか