Microsoft Office Word 2007 でテキスト フォーム フィールドを編集する Powershell スクリプトを作成しようとしています。以前に構成したブックマークを介してフォーム フィールドを見つけ、そこにテキストを書き込む必要があります。テスト目的で書き込んだデフォルトのテキストは「Something」です。それは私がこれまで持っているものです:
$document = 'D:\Powershell\Test.docx'
$Word = New-Object -Com Word.Application
$Word.Visible = $True
$doc = $word.Documents.Open($document)
$text = "Hello"
$bookmark = "server1"
$doc.Bookmarks.Item($bookmark).Range.Text.Replace("Something", $text)
出力は次のとおりであるため、コンソールで機能します。
FORMTEXT Hello
Word には、以前に手動で挿入した文字列が引き続き表示されます。入力すると:
$doc.Bookmarks.Item($bookmark).Range.Text
出力は次のとおりです。
FORMTEXT Something
私はすでに試しました:
$Word.ActiveDocument.Reload()
$Word.ActiveDocument.Fields.Update()
$doc.PrintPreview()
$doc.ClosePrintPreview()
$doc.Bookmarks.Item($bookmark).Range.Fields.Update()
しかし、何も機能していないようです。そのテキストフォームフィールドに永久に何かを書き込む方法を誰かが考えていますか? または、それがより簡単な場合は、(リッチ) テキスト コンテンツ コントロール (より新しいようです) を使用できます。それらはブックマークではなく、タグとタイトルを使用します。事前にご協力いただきありがとうございます。PS:MS Word 2016 でも動作しません。