
No.1ベストアンサー
- 回答日時:
こんにちは。
> エクセルの「検索と置換」を
> Application.Dialogs(xlDialogFormulaFind).Show
> で出現させて検索の作業をしています。
> 作業後に「検索と置換」の画面をマクロで消したいのですが
> どのようなコードになるでしょうか。
問題解決の肝は、
何故or何の為に、「検索と置換」ダイアログを表示させる必要があるのか、
ということになると思いますが、
この点をうまく説明できないでいることも、
解決の糸口を見つけられないでいる原因のようですね。
> 「検索と置換」の画面をマクロで消したい
結論からいうと、残念ながら、そういう機能は用意されていません。
それはExcelやVBAの仕様がどうこうとかいう次元ではなくて、
目的に適ったツール選びが出来ていないのだと思います。
ダイアログというのは概ね、制御を占有して、
ユーザー(の手作業による)操作に応じて、実行したり閉じたりするものです。
制御を占有している、ということは、一連のユーザー(の手作業による)操作
が終って、ダイアログが閉じるまでは、
他の操作やコマンドを割り込んで実行することは出来ない、
ということを意味します。
例えば、
Sub test()
' ' 前処理
Application.Dialogs(xlDialogFormulaFind).Show
' ' 後処理
End Sub
↑このプロシージャを実行すると、
"前処理"を実行し「検索と置換」ダイアログを表示しますが、
ユーザー(の手作業による)操作によってダイアログが閉じるまでは
"後処理"を実行することは出来ません。
割り込むことが出来ないのは、何もVBAに限った話ではなくて、
「検索と置換」ダイアログを表示している間は、
Excelアプリケーション全体について何も操作出来ませんよね?
例えば、セル範囲を選択する、なんて簡単なことでさえ、出来ないのですから。
なので、もう一度、何をしたいのか、整理した上で、
「検索と置換」ダイアログを表示する以外の手段を検討してみて下さい。
普通に考えると、range.Find メソッド や range.Replace メソッド 等で
対応することになるかと思います。
ダイアログを表示したかった理由が、
ユーザーインターフェイス的なものを求めている、ということだったとすれば、
・シート上に配置するテキストボックス
・ユーザーフォーム+テキストボックス
・application.InputBox
等々、制御を占有することのない(つまり閉じるコマンドを受け取れる)
インターフェイスを準備することは可能です。
ここで想定した以外の目的、なのかも知れませんが、
ExcelやVBAの既存の機能を組み合わせていけば、
大抵の要求には応えられるようになっているでしょう。
部分的な方法論というより、全体を俯瞰的に見渡して、
どのようなツールが適しているのか選択することから再検討ですね。
十分な情報が追加されるようであれば、こちらでも検討・アドバイスすることは可能です。
"無いものは作ってしまえ"的に、ダイアログを閉じるようなことは、
出来なくもないかな?と思いますが、それにしても、
いつ閉じるのか、
という(タイミングを取る)トリガーとして何かボタンを押すことになるぐらいなら、
最初から[閉じる]ボタンを押せばいい訳ですから、
"いつ"ダイアログを閉じるのか、とか、
5W1H的な説明をまず、ご自分の中で整理してみたらいいと思います。
例えば、「Enterキーを押したら、閉じる」みたいな要求なら、
シート上やユーザーフォーム上のテキストボックス
がお奨め、とか、具体的なニーズに副ったアドバイスなら出来るかも、です。
この回答へのお礼
お礼日時:2014/09/26 18:04
cj_ mover様
ご回答ありがとうございます。
「何故or何の為に、「検索と置換」ダイアログを表示させる必要があるのか」
を考え、改めてお聞きさせていただきます。
ご丁寧にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
巡回置換と交代群について
-
カンマ区切り形式ではなく、セ...
-
ExcelのROUND関数を一括解除し...
-
txtファイル内の指定の単語の数...
-
Wordチェックボックス作り方(...
-
秀丸エディタ タブをカンマに...
-
アクセスのテーブル上でデータ...
-
文字を一括で置換するソフト・...
-
TeraPadに一括置換のプラグイン...
-
文字列の<>で囲まれた文字列...
-
置換での互換(交代多項式・差...
-
複数のhtmlファイルのソースを...
-
キングファイルの背表紙を作成...
-
<IFRAME>でコンテンツ部分のみ...
-
パワーポイントで参照ページを...
-
トロッファとは何ですか??
-
リダイレクト前のURLをブックマ...
-
htmlでテキストファイルの中身...
-
2ページにまたがる画像のダブ...
-
Dreamweaver8を使っていますが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマ区切り形式ではなく、セ...
-
txtファイル内の指定の単語の数...
-
Wordチェックボックス作り方(...
-
ExcelのROUND関数を一括解除し...
-
エクセルで置換リストを別ブッ...
-
Ctrl+Hで置換にならない
-
パワーポイントの置き換えマクロ
-
秀丸エディタ タブをカンマに...
-
ワードでの検索、置換モードの...
-
エクセル 置換中の値の更新
-
Excel or条件で抽出し置換したい
-
アクセスのテーブル上でデータ...
-
エクセルの”?”の置換について
-
複数のhtmlファイルのソースを...
-
エクセル リンクを貼ったブッ...
-
dreamweaver でエンコード一括...
-
エクセル2002での単純な文字置...
-
まとめてリンクが張れるフリー...
-
秀丸で、複数の置換を1ステッ...
-
ファイル名の変更
おすすめ情報