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

本記事のコード(プログラム)は、後日「「検索と置換」ダイアログボックスに文字列を表示させる(その2)」にて更新されています。

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

一括置換の翻訳のために、置換用のマクロを使っています。

今は、自分で検索と置換専用のダイアログボックスを設計して使っていますが、以下のマクロを過去ずっと使っていました。かなり便利です。

自作の「検索と置換」ダイアログボックスは、もう少し作りこんでからマニュアルをつけて公開させていただきますので、ご興味がある方はお待ち下さい。

(→後日、山猫の手を公開しました。)

このマクロでできること

選択中の文字列を「検索する文字列」と「置換後の文字列」に自動的に入力します。

それだけのマクロなのですが、コピーして貼り付けて、という手間が2回減りますので、便利ですよ。

なにしろ、一括置換の翻訳では、こういう作業が毎日何十回(いや、何百回)と続くわけですから、その効果はけっこうなものになります。

[検索と置換]ダイアログボックス6

では、なぜわざわざこんなマクロを作っているのか?というと、Wordの性質上、選択中の文字列は、「検索と置換」ダイアログボックスの「検索する文字列」欄に常に自動で入力されるわけではないからです(「検索する文字列」欄に自動入力する場合としない場合 )。

また、「置換後の文字列」欄には自動で入力されません。

そのため、これらを自動で実行してくれるマクロを作りました。

マクロの解説

8行目~12行目で現在選択中の文字列をmyStringに格納しています。

文字が選択されていない場合には、空欄にする処置をしました。このようにする理由は、かつて書いたとおりです(選択されている文字列を文書内で検索するマクロ )。

17行目と18行目で、「検索する文字列」と「置換後の文字列」に選択中の文字列を設定しています。

(後日追記)

6行目で、エラー処理をしております。おそらく、組み込みダイアログボックスのエラーのようなものです。Word 2000の時代からあるようですが、Word 2010になっても依然同様の問題がございます。

ここで表示されるエラーメッセージは、置換数を表示するなど、通常であれば置換後に表示されるべきメッセージです。

また、「検索をする文字列」に文字列に文字を入れずに検索ボタンを押した場合にもエラーになります。

ただ、この種のエラーは無視できるであろうと思われますので、エラーがあってもメッセージは表示させずにおくという処置とさせていただきました。

ご迷惑をかけました。お試し下さい。

(後日さらに追記)

もっと便利な方法があります。こちらをご覧下さい。

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

マクロ


Sub MWM_Replacement()

  '置換ダイアログ
  Dim myString As String

  On Error Resume Next

  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

  Dialogs(wdDialogEditReplace).Show

End Sub

トップへ戻る