大量の .doc ファイル (約 200 ファイル) に対して、検索と置換のアルゴリズムを実行しようとしています。
約40本の弦を見つけて交換する必要があります。このような操作を定期的に行う必要があるので、スクリプトを作成するには非常に良いケースだと思います。
- 言葉でこれを行うことは可能ですか?
- そうでない場合、.batch ファイルでこれを行うことは可能ですか?
- そうでない場合、どこから始めればよいですか?
大量の .doc ファイル (約 200 ファイル) に対して、検索と置換のアルゴリズムを実行しようとしています。
約40本の弦を見つけて交換する必要があります。このような操作を定期的に行う必要があるので、スクリプトを作成するには非常に良いケースだと思います。
唯一の重要なビットは置換ですが、それを記録して変更することができます
Sub Foo()
'path
Const PATH As String = "C:\xxx\"
Dim doc As Word.Document
Dim fn As String: fn = Dir$(PATH & "*.doc")
With Application
'loop matching files
Do While Len(fn)
'open
Set doc = .Documents.Open(PATH & fn)
'replace text
replaceInDoc doc, "OLD TEXT", "NEW TEXT"
replaceInDoc doc, "MORE OLD TEXT", "MORE NEW TEXT"
'save, close
doc.Save
doc.Close
'get next file
fn = Dir$()
Loop
End With
End Sub
Sub replaceInDoc(doc As Word.Document, find As String, replaceWith As String)
'do the replace
With doc.Content.find
.Text = find
.Replacement.Text = replaceWith
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute replace:=wdReplaceAll
End With
End Sub
明らかに、これをコピーでテストします。
私の見解では、2つの選択肢があります。
これを行うには、独自のVBAスクリプトコードを作成します。MS Officeヘルプシステム用の組み込みのVBAエディターを使用して、タスクを完了するために使用する必要のあるMSWordドキュメントオブジェクトモデルのプロパティと機能について学習できます。
この仕事のためにいくつかのサードパーティの市販のソフトウェアを見つけて使用してください。このタスクには、さまざまなベンダーのプログラムがいくつかあります。
2番目のアプローチでは、時間と労力が大幅に削減されます。テキストを置き換える必要のあるドキュメントにアクセスするためにOLEオートメーションを介してMSWordを制御できない限り、バッチファイルは機能しません。