• ベストアンサー

【VB.NET】 パワポ操作を非表示で

 質問させていただきます. どうぞよろしくお願いいたします.  PowerPointの操作をするコードを作成して使っております. 毎回立ち上がるパワポのウィンドウを非表示にしたいのですが, myAPP.Visible = True状態でないと,presentations.Openでエラーが出てしまいます. Dim myAPP As Object myAPP = CreateObject("PowerPoint.Application") Dim myAPPpre = myAPP.presentations Dim Mypath As String = TextBoxパス.Text Dim FName As String myAPP.Visible = True FName = Dir(Mypath & "test.ppt", vbNormal) With myAPPpre.Open(Mypath & FName) '←上のmyAPP.Visible = Trueを消すとエラー                     '「Presentations.Open : 無効な要求です。PowerPoint のフレーム ウィンドウは存在しません。」となります.  どうにか見えない状態で実行できないものでしょうか. 調べておりますと,同じ現象がよくあるようでした. (http://www.kotaete-net.net/Default.aspx?pgid=14&qid=80254136041 http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/sept07/hey0921.mspx のページ中間あたり「さいわい、Visible プロパティを True に設定することによって~」のところ.)  もし何か方法が分かるかたがいらっしゃいましたら, アドバイスいただければと思います.  どうぞよろしくお願いいたします.

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Openの引数WithWindowの既定値はmsoTrueですから,そうなるでしょう。 WithWindowにMsoTriState.msoFalseを渡してやればよいです。

MKT_
質問者

お礼

 どうもありがとうございます!  アドバイス通りやってうまくいきました. はじめ,Importするとエラーだらけになったので, With myAPPpres.Open(Mypath & FName, WithWindow:=Microsoft.Office.Core.MsoTriState.msoFalse) でできました.  ただActivePresentationエラーの修正と合わせて 3時間かかりました..orz  本当にどうもありがとうございました!

その他の回答 (1)

  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.2

myAPP.Top = 600 など画面外にしておいて あとで戻しておくのだと簡単ですが。 使う人が途中で終了させたときにも 元に戻すようにしておく必要があります。  (VBを使っていないので・・・です。)

MKT_
質問者

お礼

 どうもありがとうございます!!  画面ぎりぎりまで行く設定でやってみましたが, テクが至らず元に戻せない時がありました.  家族で使用するPCなので,今回はYune-Kichi様の方法でいきます.  アドバイスどうもありがとうございました.

関連するQ&A