1

大量の .doc ファイル (約 200 ファイル) に対して、検索と置換のアルゴリズムを実行しようとしています。

約40本の弦を見つけて交換する必要があります。このような操作を定期的に行う必要があるので、スクリプトを作成するには非常に良いケースだと思います。

  1. 言葉でこれを行うことは可能ですか?
  2. そうでない場合、.batch ファイルでこれを行うことは可能ですか?
  3. そうでない場合、どこから始めればよいですか?
4

2 に答える 2

1

唯一の重要なビットは置換ですが、それを記録して変更することができます

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

明らかに、これをコピーでテストします。

于 2012-08-30T11:59:21.693 に答える
0

私の見解では、2つの選択肢があります。

  1. これを行うには、独自のVBAスクリプトコードを作成します。MS Officeヘルプシステム用の組み込みのVBAエディターを使用して、タスクを完了するために使用する必要のあるMSWordドキュメントオブジェクトモデルのプロパティと機能について学習できます。

  2. この仕事のためにいくつかのサードパーティの市販のソフトウェアを見つけて使用してください。このタスクには、さまざまなベンダーのプログラムがいくつかあります。

2番目のアプローチでは、時間と労力が大幅に削減されます。テキストを置き換える必要のあるドキュメントにアクセスするためにOLEオートメーションを介してMSWordを制御できない限り、バッチファイルは機能しません。

于 2013-02-10T07:53:08.737 に答える