複数のWord文書のフィールドコードオプションをまとめて置換したいことがあった。
フィールドの置換といっても通常の文字列置換とほとんど変わりはない。
置換前に、
$word.ActiveWindow.View.ShowFieldCodes = $true |
とやってフィールドコードを表示させておけば良いだけだ。
以下のコードは目次のフィールドコードの後ろにブックマーク範囲を指定するオプションを追加している。フィールドコードは通常 Alt + F9 ですべて表示できる。
(とりあえず、単一文書を置換している)
function Main{ $word = new-object -comObject "Word.Application" #置換するためフィールドコードを表示しておく $findText = "\z \u" $word.Selection.Find.Execute($FindText,$n,$n,$n,$n, if($word){ } function Pause Main |
それほど難しいところはないのだが、Find.Executeメソッドの引数は試行錯誤した結果、とりあえず上記のように最低4つ指定すればよいようだ。
また、フィールドオプションを置換した後、最新にUpdateしているのだが、環境によっては表示が更新されないこともあるようだ。
0 件のコメント:
コメントを投稿