【ユーザーライブラリ】Word文字列一括置換方法
Wordファイルの検索はあるのですが、置換がないので投稿しておきます。
検索のオプションは必要に応じて消して使用してください。
ドキュメントの文字の統一なんかに使えます。
数字の全半角統一などはもっと簡単に書けるのですが、それはまた今度に。
参考まで。
<サンプルスクリプト>
Dim objSelection
word = !検索文字列!
repword = !置換文字列!
Set objWord = Nothing
On Error Resume Next
Set objWord = GetObject(, "Word.Application")
If objWord is Nothing then
Set objWord = CreateObject("Word.Application")
end if
If objWord is Nothing then
Err.Raise 1, "", "指定されたWordファイルが開けません。"
end if
On Error Goto 0
objWord.Visible = True
Set objSelection = objWord.Selection
' 検索文字列指定
objSelection.Find.Text = word
' 検索方向は文書に対して末尾の方向(順方向)
objSelection.Find.Forward = True
' 完全に一致する単語だけを検索
objSelection.Find.MatchWholeWord = False
' 文書の末尾(または先頭)に到達したとき先頭から再検索
objSelection.Find.Wrap = 1
' 大文字と小文字の区別
objSelection.Find.MatchCase = True
' 全角と半角の区別
objSelection.Find.MatchByte = True
‘ ワイルドカードを有効
objSelection.Find.MatchWildcards = True
' 置換文字列指定
objSelection.Find.Replacement.Text = repword
' 置換文字を太文字強調
objSelection.Find.Replacement.Font.Bold = True
' 置換文字を赤色文字強調
objSelection.Find.Replacement.Font.Color = RGB(255, 0, 0)
' 一括置換実行
objSelection.Find.Execute ,,,,,,,,,,2
Set objWord = Nothing
Set objSelection = Nothing
以下追記。
質問があったのでワイルドカードの項目を追記しました。