2

以前は、office 2003、2007 アプリケーションをバックグラウンドで実行したい場合、"Visible" プロパティの値を $False に設定できました。しかし、Office 2010 では同じアクションを実行できませんでした。値を $fasle または "msoFalse" に設定すると、次のようなエラー メッセージが表示されます。

===========================

Exception setting "Visible": "Application (unknown member) : Invalid request. アプリケーション ウィンドウを非表示にすることはできません

許可された。"

行:1 文字:1

  • $app.Visible="msoFalse"

または

例外設定 "Visible": "値 "False" を "Microsoft.Office.Core.MsoTriState" 型に変換できません。エラー:

「'System.Boolean' から 'Microsoft.Office.Core.MsoTriState' への無効なキャストです。」"

=============================

「Visible」の値を「msoTrue」に設定すると、問題なく動作し、エラーは発生しません。

これを引き起こす原因は誰にもありますか?また、バックグラウンドで実行されている Office 2010 アプリケーションを有効にする方法は?

ちなみに、Word、Excel 2010で同じアクションを使用してもエラーは発生せず、うまく機能します。しかし、powerpoint 2010 でのみ実行すると、エラー メッセージが表示されます。

4

3 に答える 3

1

CB。MsoTriState を使用できるという点では正しかったのですが、そのオプションは、powershell バインディングからはそれほど明白ではありません。Open コマンドの定義を確認できます。

PS C:\Users\jidar\Documents> $doc.Presentations.Open

OverloadDefinitions
-------------------
Presentation Open (string, MsoTriState, MsoTriState, MsoTriState)

上記の定義に従おうとすると、次を使用できました。

$doc.Presentations.Open($item, [Microsoft.Office.Core.MsoTriState]::msoFalse, [Microsoft.Office.Core.MsoTriState]::msoFalse, [Microsoft.Office.Core.MsoTriState]::msoFalse)

どの msoFalse が必要かどうかについては掘り下げていないので、検証が必要になる場合があります。

編集:言い忘れましたが、これはOffice 2016でテストされました(他のバージョンのYMMV)

于 2017-01-06T18:41:26.557 に答える
1

Office 2010 でも同じことができます。たとえば、Word の表示と非表示は次のようになります。

$word = New-Object -ComObject Word.Application
$word.Visible=$true
$word.Visible=$false
于 2012-06-12T07:34:34.880 に答える
0

MsoTriState 列挙子を使用するだけです。

$app.visible = [Microsoft.Office.Core.MsoTriState]::msoTrue

また

$app.visible = [Microsoft.Office.Core.MsoTriState]::msoFalse
于 2012-06-12T04:44:33.660 に答える