Wordで、単語中の一部だけが違う類似文字列の一括検索と置換。いわゆる「ワイルドカードを使用した検索」と置換の備忘録。
具体的には、ステップ記録ツールのmhtファイルをWordで編集するポイント で示した作業で、ファイル内に
手順 1 のスクリーン ショット。
手順 2 のスクリーン ショット。
手順 3 のスクリーン ショット。
・・・
といった数字だけが違うような文字列を一括検索と置換をしたいケースなど。画面でわかりづらいが、文字列内に空白文字もいくつかある。
この文字列を検索して削除する場合は、検索と置換で「ワイルドカードを使用する」にチェックし、次のように検索と置換をする。
- 「検索する文字列」には、元のWordの文字をそのままコピーして、数字部分を「*(半角アスタリスク)」で表現する。
- 「置換後の文字列」は、何も空欄のままとする。
例えば、”手順 1 のスクリーン ショット。”といった場合は、以下となる。
例) 手順*のスクリーン ショット。
下図のサンプルは、文末にあるスペースと改行も削除したかったので、
例) 手順*のスクリーン ショット。?^13
としている。
なお、スペースを明確にして、検索したいのなら次になる。
手順*のスクリーン^32ショット。^32^13
ASCIIコードで、32が空白、13が改行を意味するので。
WordのVBAでのワイルドカードを使用した置換
上記置換をVBAで実施するサンプルは次のとおり。
手順のスクリーンショットの文字列削除
Sub 手順のスクリーンショットの文字列削除() Selection.HomeKey Unit:=wdStory Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "手順*のスクリーン^32ショット。^32^13" .Replacement.Text = "" .Wrap = wdFindContinue .MatchFuzzy = False .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
なお、Selection.HomeKey Unit:=wdStoryは、検索動作の安定用です。詳細はこちらに記載しました。
以上、Wordで、単語中の一部だけが違う類似文字列の一括検索と置換する方法(VBA含む)でした。
手順書作成のために、WordのVBAでステップ記録ツールのmhtファイルを編集する準備については、以下をご覧ください。
参考情報
ワイルドカードの使用など高度な検索と置換については、Wordの公式情報が見つからなかったので、機能的に近いと思われるOutlookの情報と、ASCII 文字を挿入の参考情報は次のとおり。