dポイントプレゼントキャンペーン実施中!

エクセルの「検索と置換」をマクロボタンで閉じることは可能でしようか。


ファイルAとファイルBがあり、ファイルAの中で「検索と置換」の機能を使い検索作業後、マクロボタンでファイルBに移動して入力作業をする。
繰り返し上記の作業をしています。
ファイルBに移動したときに「検索と置換」の画面が不要なためファイルAからファイルBに移動した時点で「検索と置換」の画面を閉じるマクロをファイルAからファイルBに移動するマクロに付け加えたいのですが、「マクロの新しい記録」では記録できませんでした。


宜しくお願いいたします。

A 回答 (1件)

こんにちは。



前回、同じような質問が出ていますが、こちらも、前回の人の回答とはあまり変わりません。
別に誰が答えても、VBAで、こういう回答は、同じ類のものになります。

基本的なVBAの考え方が出来ていないのに、ひとつの方法にこだわるのはやめたほうがよいです。
一度、フローチャートを書いたら、一目瞭然です。

ダイアログの「検索と置換」を「入力」し「閉じる」作業は、誰が決めるか、ということです。
そのダイアログを検索し閉じるというタイミングは人が決めるもので、その人本人しか分からないはずです。

少しも、前の方が書いた内容を理解していないようです。

そもそも、
・何故or何の為に、「検索と置換」ダイアログを表示させる必要があるのか、

ということです。単に別のテクニックを知らないという理由ではないでしょうか?

言い方を変えれば、
Application.Dialogs(xlDialogFormulaFind).Show

このダイアログが開いている間は、VBAは停止状態になります。
それをVBA範囲内で処理することは出来ません。

既に書かれている話ですが、ユーザーは、検索語を入れるだけの作業で、
 Application.Dialogs(xlDialogFormulaFind).Show

既存のダイアログなど不要です。当然、それを使わなければ、閉じるという操作自体も不要です。単に、検索語として、Inputbox 関数やメソッド、ユーザーフォームを使うなど、そうした対話型マクロを作り、その先に何をするかということです。

もしかしたら、VBAマクロとキーボードマクロと混同していませんか。

演出のためにするのでしたら、VBAではなく、外部言語で、例えば「UWSC」というキーボードマクロ(一般的にはWindows マクロという名前)が必要です。

しかし、VBAには、「検索・置換」ダイアログに替わるものはありますから、あえて、それで、自動で行う必要もありません。例えば、「Find メソッド」をヘルプでみてください。コードとしては、初心者には負担が大きいのですが、やり方は書籍にでも確認すれば分かります。
    • good
    • 0
この回答へのお礼

WindFaller様

ご回答ありがとうございます。

ご指摘のとおり、せっかくのご指導を理解していませんでした。

ありがとうございました。

お礼日時:2014/09/29 12:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!