そのため、Word文書で検索して置換したい一連の文字列があります。
私の文字列は2列のテーブルとして表示されます。私はおそらくWordでテーブルを作成し、それを手動でTXTやCSVなどに変換します...その部分を自動化する必要はありません。テーブルはおおよそ次のようになります。
English Word French Word
dog chien
cat chat
London Londres
あなたはアイデアを得る...
最初の列に含まれている用語を検索し、それらを2番目の列のコンテンツに置き換えるマクロが必要です。
手伝ってくれますか?ありがとうございました!
Selection.Find.ClearFormatting
With Selection.Find
.Text = "English Word"
.Replacement.Text = "French Word"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Wordごとにこれらの1つを作成しますが、これはテーブルを読み取りません
Raystafarianのスニペットを自由に借りて、それを拡張しました。行を変更しますfilename="c:\folder\file.txt
プレーンテキストファイルのパスとファイル名を使用します。内容は、単語またはフレーズ、タブ、単語またはフレーズ、行末です。エラーチェックは気にしなかったので、最後の行に行末がない場合、その行のテキストは置き換えられません。また、各行にタブを含めないと、このマクロはおそらく壊れます。簡単に元に戻せるように、Word文書をバックアップしてください。
Sub Macro1()
Dim ff As Long
Dim x As Long
Dim filename As String
Dim buffer As String
Dim charbuffer As String * 1
filename = "c:\folder\file.txt"
ff = FreeFile
Open filename For Binary As ff
buffer = ""
charbuffer = ""
For x = 1 To LOF(ff)
Get #ff, , charbuffer
If charbuffer <> vbCr And charbuffer <> vbLf Then
buffer = buffer & charbuffer
Else
If buffer <> "" Then processBuffer buffer
buffer = ""
End If
Next x
Close ff
End Sub
Sub processBuffer(buffer As String)
Dim varArray As Variant
varArray = Split(buffer, vbTab)
makeReplacements varArray(0), varArray(1)
End Sub
Sub makeReplacements(ByVal strToReplace As String, ByVal strReplacement As String)
'MsgBox strToReplace & " will be replaced by " & strReplacement
Selection.Find.ClearFormatting
With Selection.Find
.Text = strToReplace
.Replacement.Text = strReplacement
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
End Sub