ホーム > Word > リストを元に連続して置換

リストを元に連続して置換

2011 年 1 月 24 日 コメントをどうぞ コメント
このエントリーをはてなブックマークに追加
Bookmark this on Yahoo Bookmark

Wordで文書を編集しているときに、用語を統一したいときがあります。
例えば「エディター」を「エディタ」に揃えるような場合です。
置換機能を使えば簡単なのですが、対象となる用語が大量にある場合にはちょっと面倒です。

そこで変換用のリストを作っておき、それを元に連続して文字列を置換するマクロを作ってみました。

リスト

Wordの本文に次のようなリストを書いておきます。
置換前と置換後の文字列を並べ、セミコロン(;)で区切ります。
セミコロンのない行は無視されるので注釈などを書いておいてもかまいません。

エディター;エディタ
プリンター;プリンタ
サーバー;サーバ

コード

次のコードを使います。
マクロを実行すると用語を統一したい文書ファイルを選ぶダイアログが出ます。
ファイルを選択するとそのファイルが開き、リストに従って次々に置換が実行されます。

Sub リストを元に連続して置換()
    Dim mae(100)
    Dim ato(100)
   
    With Application.FileDialog(msoFileDialogFilePicker)
        .Title = "ファイルを選択"
        .AllowMultiSelect = False
        .Show
        filename = .SelectedItems(1)
    End With
   
    Set paras = ActiveDocument.Paragraphs
    x = 0
    For i = 1 To paras.Count
        line = paras(i).Range.Text
        temp = Split(line, ";")
        If UBound(temp) > 0 Then
            mae(x) = temp(0)
            ato(x) = replace(temp(1), Chr(13), "")
            x = x + 1
        End If
    Next i
   
    Documents.Open filename:=filename
    For i = 0 To x - 1
        Set myRange = ActiveDocument.Range(Start:=0, End:=0)
        With myRange.find
            .ClearFormatting
            .Text = mae(i)
            With .Replacement
                .ClearFormatting
                .Text = ato(i)
            End With
            .Execute replace:=wdReplaceAll
        End With
    Next i
End Sub
カテゴリー: Word タグ: ,