先日紹介した記事(【コード】「検索と置換」ダイアログボックスに文字列を表示させる)のマクロに対して、きぬあささんからいただいた以下のコメントをもとに、進化したマクロを作ってみました。
ダイアログのエラー、目に付いたので調べてみました。
下記サイトでもやはりOn Errorで飛ばしているようですね。
これが一番簡単な対処方法なんだと思います。メッ セージをエラーとして表示するのではなく、通常と変わらずに表示する場合は「Dialogs(wdDialogEditReplace).Show」を 「Application.CommandBars.FindControl(ID:=313).Execute」に置き換えれば良さそうですね(^^)
まいど、有益な情報をご提供いただき、どうもありがとうございます。
<目次>
このマクロでできること
文字列を選択した状態で実行すると、選択されている文字列が「検索と置換」ダイアログボックスの「検索する文字列」欄と「置換後の文字列」欄に自動で入力されます。
前回紹介した「『検索と置換』ダイアログボックスに文字列を表示させる」の記事では、組み込みのダイアログボックスを利用しました。
ただ、この方法だと、置換のタブが選択されたままで、検索のタブをクリックにて表示できません(お試し下さい)。
今回の方法では、[Ctrl] + [H]を押して表示される「検索と置換」ダイアログボックスと同じものが表示されますので、検索のタブも、ジャンプのタブもクリックして表示できます。
このちょっとした違い、すごくうれしいですよね。
どうぞお試し下さい。
マクロの解説
「検索と置換」ダイアログボックスを19行目の方法で表示させます。
このようにすると、エラー処理が不要になります。
マクロ
Sub MWM_Replacement2() '置換ダイアログ Dim myString As String If Selection.Start = Selection.End Then myString = "" Else myString = Selection.Text End If With Selection.Find .ClearFormatting .Replacement.ClearFormatting .Text = myString .Replacement.Text = myString End With Application.CommandBars.FindControl(ID:=313).Execute End Sub
コメント
-
2. Re:Re:「検索と置換」ダイアログボックスに文字列を表示させるマクロ(その2)
kinuasaさん、
毎度ありがとうございます。
このCommandBar IDという手段をいただきまして、これからのマクロ作りの選択肢・自由度が増えました。
どうもありがとうございます。
>今確認してみたら確かにそうですね(^^;
>気づいていませんでした(笑)案外違いがありまして、教えていただいたCommandBar IDの方法がすごくうれしいです。
違いをこちらにまとめてみました。
http://ameblo.jp/gidgeerock/entry-11001068484.htmlありがとうございました。
-
1. Re:「検索と置換」ダイアログボックスに文字列を表示させるマクロ(その2)
きぬあさです。
> ただ、この方法だと、置換のタブが選択されたままで、検索のタブをクリックにて表示できません(お試し下さい)。
今確認してみたら確かにそうですね(^^;
気づいていませんでした(笑)ちなみにFindControlメソッドで指定しているコントロールのIDは一覧にしたものを私のサイトで公開していますので、よろしければそちらもご参照ください(^^)
[2003用] http://www.ka-net.org/office/of29.html
(完璧に網羅しているわけではありませんが、それなりに参考になる資料だと思います。)
[2007用] http://www.ka-net.org/office/of02.html
[2010 Beta用] http://www.ka-net.org/office/of16.html
[2010用] http://www.ka-net.org/office/of28.html