【コード】「検索と置換」ダイアログボックスに文字列を表示させる(その2)

先日紹介した記事(【コード】「検索と置換」ダイアログボックスに文字列を表示させる)のマクロに対して、きぬあささんからいただいた以下のコメントをもとに、進化したマクロを作ってみました。

ダイアログのエラー、目に付いたので調べてみました。
下記サイトでもやはりOn Errorで飛ばしているようですね。
これが一番簡単な対処方法なんだと思います。

http://j.mp/qaUidt

メッ セージをエラーとして表示するのではなく、通常と変わらずに表示する場合は「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

トップへ戻る