
エクセルのVBAで文字の検索をしたいと思います
エクセルは2000です
エクセルのマクロの記録機能を利用して
下記のようなマクロを作成しましたが
これでは、別のシートの文字が検索できません
同一ブックの別のシートも検索できるようにするには
どうしたら良いでしょうか、よろしくお願いします
以下同一シートしか検索しない例
Sub Macro1()
Dim 検索文字 As String
検索文字 = InputBox("検索文字を入力してください")
Cells.Find(What:=検索文字, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate
End Sub
No.2ベストアンサー
- 回答日時:
こんにちは。
最初に、#1 さんの回答で試してみてからにしてください。
ここら辺は、Version によって左右されるかもしれませんので、はっきり言明できません。手元の資料(VBA辞典)では、2002までですので、良く分りません。
3シートをグループでSelect(またはActivate)しても、記録マクロレベルでは、どう見ても、ActiveSheetでしか検索するようには思えないです。他にやり方があるのかもしれませんが、Findメソッドを使う限りは、同じようなコンセプトになるのではないかなって思いました。その上で、私の考えたコードです。(LookIn の部分だけ、値検索にしました。)
Sub MacroSample1()
Dim 検索文字 As String, sh As Worksheet
Dim c As Range, myFadd As String
検索文字 = InputBox("検索文字を入力してください")
For Each sh In Worksheets(Array("Sheet1", "Sheet2", "Sheet3"))
sh.Select
myFadd = "$A$1"
Set c = Cells.Find(What:=検索文字, _
After:=Range(myFadd), _
LookIn:=xlValues, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not c Is Nothing Then
myFadd = c.Address
Do
c.Select
If MsgBox("継続しますか?", vbOKCancel) = vbCancel Then
Exit Sub
End If
Set c = Cells.FindNext(c)
Loop Until c Is Nothing Or c.Address = myFadd
End If
myFadd = ""
Next
End Sub
この回答への補足
Wendy02さんありがとうございました。
回答のコードを実行したところ
動作を確認できました、
利用させていただきたいと思います(感謝)
(補足)
私の環境は自宅がエクセル2000で
職場がもっと新しいバージョンです(2002かも)
エクセル2000では手動で検索してもシートしか
検索できませんが、職場のバージョンだと手動での
検索時に検索対象をブックにすると他のシートも検索
できますので、Findのパラメータを指定することにより
ブック検索が出来るのかなと思っていたのですが
そうではないのでしょうか?
(そうでないから、コードを書いてくれたのですね)
No.1
- 回答日時:
Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select
として複数シートを選択した状態で検索を書ければ検索できます。
この回答への補足
g_nekoruさんありがとうございます
回答を参考にして
Sub Macro1()
Dim 検索文字 As String
Sheets(Array("Sheet1", "Sheet2", "Sheet3")).Select
検索文字 = InputBox("検索文字を入力してください")
Cells.Find(What:=検索文字, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate
End Sub
のようにやってみたのですが、私の持っているエクセルではうまくいきませんでした、
「実行時エラー91
オブジェクト変数または、Withブロック変数が設定されていません」とでてしまいます
明日職場のエクセル(バージョンが新しい)でもためしてみます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルマクロで教えてください 2 2022/05/04 09:07
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Excel(エクセル) vba 転記するときの最終行について 2 2022/09/03 09:31
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) WordのVBAについて 5 2023/01/11 14:38
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) ワークブック内すべて検索 2 2022/12/20 20:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセルのdatedif関数を使って...
-
エクセルのVBAで集計をしたい
-
【マクロ】【配列】3つのシー...
-
特定のセルだけ結果がおかしい...
-
エクセル ドロップダウンリスト...
-
【マクロ】列を折りたたみ非表...
-
vba テキストボックスとリフト...
-
【関数】同じ関数なのに、エラ...
-
ページが変なふうに切れる
-
【条件付き書式】シートの中で...
-
【マクロ】オートフィルターの...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【マクロ】3行に上から下に並...
-
エクセルの循環参照、?
-
【マクロ】A列にある、日付(本...
-
iPhoneのExcelアプリで、別のシ...
-
エクセル
-
【マクロ】WEBシステムから保存...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報