2015年4月7日火曜日

◆Wordのテンプレートを指定する

Wordの独自テンプレートを置いていたサーバーがリプレースされてパスが変わってしまったため、Word文書のテンプレートパスを一括で変更するスクリプトを作った。

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019

$iPath = "\\hogeServer\public\*"
$ext = "docx"

$targetDocs = Get-ChildItem -Path $iPath -Include "*.$ext" -r 
$word = new-object -comObject "Word.Application" 
$word.Visible = $true

foreach($doc in $targetDocs
){ 
   
$word.Documents.Open($doc.fullname) | Out-Null
 
   
#Template設定
        $word.ActiveDocument.AttachedTemplate =
 
           
"\\hogehogeServer\pub\テンプレート.dotx"

    #保存して終了
    [void]$word.Application.ActiveDocument.
Save()
   
[void]$word.Application.ActiveDocument.
Close()
}


$word.Quit()
<!--EndFrag

ちなみに、ファイルサーバーの名前が変わってしまうと、Hostsファイルやlmhostsファイルでアドレスを置き換えてあげてもうまくいかない。(場合による?)

サーバー側のレジストリーでエイリアス名を設定すると良さそうではあるが・・・。

0 件のコメント:

コメントを投稿