人事チームから、全従業員用の新しい名刺の作成を手伝ってもらえないかと尋ねられました。彼らには Publisher ファイルがあり、テキストを置き換えようとしています。AD から情報を取得するすべての部分とループ メカニズムを書きましたが、テキストの置き換えを機能させることができません。Word のFind.Execute メソッドを使用する前に、Microsoft Word でこのようなことを行いました。メソッドに引数を与えるだけでうまくいったので、それは簡単でした。
今回は、Publisher の FindReplace オブジェクトを使用しようとしています。私はそれを悪用していると思いますが、方法がわかりません。私のコードは以下のとおりです。入力をいただければ幸いです。ばかげた質問で申し訳ありませんが、私はまだ PowerShell と .NET に比較的慣れていません。
$Document = "C:\Test\testcard.pub"
$Publisher = New-Object -comobject Publisher.Application
$OpenDoc = $Publisher.Open($Document)
$OpenDoc.Find.Clear()
$OpenDoc.Find.FindText = "Jane"
$OpenDoc.Find.ReplaceWithText = "John"
$OpenDoc.Find.ReplaceScope = $pbReplaceScopeAll
$OpenDoc.Find.Execute()
$OpenDoc.Save()
$OpenDoc.Close()
$Publisher.quit()