Powershell を使用して、Word 2010 (14.0.x) 文書を名前を付けて保存または閉じることができません。オンラインのすべてのツッツから、2.0で動作するはずのようですが、私はもうそれを持っていません.
単純なケース:
$Path = "C:\MyDoc.docx"
$Word = New-Object -comobject Word.Application
$Word.Visible = $True #Do this to close it out without task manager
$Doc = $Word.Documents.Open($Path)
$Doc.SaveAs($Path)
$Doc.Close()
この時点で、保存して閉じるまですべてが機能します。
Argument: '1' should be a System.Management.Automation.PSReference. Use [ref].
At line:5 char:1
+ $Doc.SaveAs($Path)
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodException
+ FullyQualifiedErrorId : NonRefArgumentToRefParameterMsg
Argument types do not match
At line:6 char:1
+ $Doc.Close()
+ ~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [], ArgumentException
+ FullyQualifiedErrorId : Argument types do not match
Get-Member が引数を持つと表示するメソッドは失敗したようです。たとえば、単純な $Doc.Save() の呼び出しは正常に機能するようです。これらのメソッドに関する MSDN の情報を見ると、 SaveChangesメソッドのようなものを使用しているように見えますが、正直なところ、現時点では私のスキルを超えています。
私は幸運を期待して $Null または $True または $False を渡そうとしましたが、それは私を悩ませ続けています。
私が見つけたのは、どうやらPS 3.0 Beta にリンクされているようで (人々にとっては 2.0 で問題なく動作するようです)、 Ed Wilson が返信していないコメントだけです。