![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
Excel2002で、あるセルに入力した文字列をキーワードに、複数のワークシートを検索、検索結果表示を「編集」-「検索」-「すべて検索」をクリックしたように一覧表示したい。
組み込みダイアログボックスを使い、VBAを次のように記述しましたが、表示されるウィンドウに「すべて検索」の表示は無く、「次を検索」しかできません。
組み込みダイアログボックスの引数に何か指定すれば「すべて検索」が可能になるのでしょうか?
それとも、組み込みダイアログボックスを使うことが間違っているのでしょうか?
よろしくお願いします。
Public Sub Kensaku()
'変数の宣言
Dim strKeywords As String
Dim vntShar As Variant
'検索したい文字列を変数Keywordsに取得
strKeywords = Range("B4").Value
'左から2番目、3番目、4番目のワークシートを選択
vntShar = Array(2, 3, 4)
Sheets(vntShar).Select
'検索ウインドウを開いて検索を実行
Application.Dialogs(xlDialogFormulaFind).Show (strKeywords)
End Sub
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちは。
Wendy02です。返事が遅くなりました。
>キーワードは、Sheet1のB4セルでは駄目なのでしょうか?
うまく行きませんでしたか?
ちょっと気になるのは、
strKeywords = Range("B4").Value
ここは、シート名が入っていませんが、本当によいのでしょうか?
通常は、ボタンがあるところですが、コードがちょっと不安ですね。
strKeywords = Worksheets("Sheet1").Range("B4").Value
と明示的に、指定して、もう一度#1のコードを試してください。
次に、それがダメでしたら、外部から送ることにします。
Sub TestSample2()
Dim strKeywords As String
Dim vntShar As Variant
vntShar = Array("Sheet2", "Sheet3","Sheet4")
Sheets(vntShar).Select
strKeywords = Sheet1.Range("B4").Value
SendKeys "^f"
CreateObject("Wscript.Shell").SendKeys strKeywords
CreateObject("Wscript.Shell").SendKeys "{Enter}"
End Sub
No.2
- 回答日時:
a88さん、こんにちわ。
a88さんのおっしゃっている検索ダイアログとは、Excel2002から追加になったものと存じます。
また、コード内に記述したダイアログ定数 xlDialogFormulaFind はそれ以前のものです。
従って、xlDialogFormulaFindに何かしらのオプションを加えることで「すべて検索」を
表示させることはできないと思います。
Excel2002から追加になった検索ダイアログは、ダイアログを表示させながらシート操作ができる
「モードレスダイアログ」というものですが、どうやらDialogsの引数には存在しないようですね。
Excel2000(モードレス検索ダイアログの無いバージョン)からExcel2002(あるバージョン)に
上がった際に、VBAのメインバージョンが上がっていない(共にVer.6.xx)ことから考えると
VBAから件のダイアログを表示させるのは難しいと思うのですが。
(ちょっとWebで調べてみたところでは存在しませんでした。)
モードレスのユーザーフォームを作成し、御自分で同様な機能を持つものを作成するしかないかも
知れません。
No.1
- 回答日時:
こんにちは。
最初に、基本的なことなのですが、
>'検索ウインドウを開いて検索を実行
>Application.Dialogs(xlDialogFormulaFind).Show (strKeywords)
>End Sub
これでは、VBAが終われないのではありませんか?
検索ができるようには思えません。この先をどうするか、ということだと思います。
>vntShar = Array(2, 3, 4)
>Sheets(vntShar).Select
それから、これは出来ますか?Sheets のIndex に配列は利かないように思いますが?
最後に、
Public Sub Kensaku()
どうして、Public ステートメントが必要なのですか?標準モジュールに書けば、規定値としてPublicプロシージャなのですけれども。
サンプルを考えてみました。ボタンなどにマクロを取り付けてください。なお、検索で見つからなかったときは、メッセージをはきだして、検索ダイアログ自体の有効性を失います。
Sub TestSample()
Dim strKeywords As String
Dim vntShar As Variant
vntShar = Array("Sheet2", "Sheet3","Sheet4")
Sheets(vntShar).Select
strKeywords = Range("B4").Value
SendKeys "^f"
SendKeys strKeywords
End Sub
通常は、このようなマクロは作りません。Findメソッドを使います。Findメソッドは、戻り値が、オブジェクトなので、オブジェクトのあるなしは、Nothing で分りますから、解除できます。
この回答への補足
Wendy02さん
早速の回答ありがとうございます。
初心者の為、めちゃくちゃな質問をしていたようで、すみません。
サンプルのマクロで、SendKeysの存在を知りました。
このサンプルを使いたいのですが、どうもキーワードの選択がうまくいきません。
キーワードは、Sheet1のB4セルでは駄目なのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
緊急 XVIDEOSを久しぶりに検索...
-
「稚劣」という単語について
-
bingで、マイナス検索ってでき...
-
sinhx^(-1)はどう読めばいいで...
-
Googleの情報収集は何を集めて...
-
excelでマクロを用いた検索エン...
-
すぐムラムラするのを抑えたい2...
-
インターネットの履歴はどこの...
-
ログインするにはCookieを有効...
-
百度に繋がってしまいます;;;
-
iTunesで、【インポート】ボタ...
-
キーワード検索だけでアクセス...
-
web検索時に見たくない人物の表...
-
HPに、Winでは見れるがMacでは...
-
google先生とは?
-
ブラウザの戻るボタンでなかな...
-
EBAYのサイトで、何度もログイ...
-
海外でのgoogle検索結果
-
google earthが異常
-
ブラウザで開くと画像のような4...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
緊急 XVIDEOSを久しぶりに検索...
-
bingで、マイナス検索ってでき...
-
「稚劣」という単語について
-
A重油の単価
-
グーグル検索の「0.21秒」って...
-
excelでマクロを用いた検索エン...
-
skypeでメールアドレスを変更し...
-
Accessで検索フォームを使用し...
-
文字化けについて質問です。
-
sinhx^(-1)はどう読めばいいで...
-
グーグルで検索出来ない
-
検索サイト結果からのホームペ...
-
Yahoo!BBで検索出来なく...
-
グーグル、ヤフー以外の検索サ...
-
Word2003でクリップアートがた...
-
グーグルについて
-
Excel VBA組み込みダイアログボ...
-
Outlookのメール検索が突然出来...
-
Googleで検索ボタンを押しても...
-
iPhone Safariでの検索結果で日...
おすすめ情報