• 締切済み

OFFCEアプリをVBSで全て保存して閉じたい

VBSで、開いた状態の複数・複シートのEXCELを全て保存して閉じるスクリプトは、http://okwave.jp/qa/q5932062.html記載の物が動いたのですが、 Set Excel0 = GetObject(, "Excel.Application") Excel0.DisplayAlerts = vbfalse For Each Book0 in Excel0.workbooks   If Book0.saved = vbfalse Then Book0.save   Book0.close Next Excel0.quit 同様に、複数開いた状態のWORDやPOWERPOINT、ACCSESSをVBSで上書き保存して閉じる場合の応用のスクリプトを教えて下さいませ。 (流石に、見本のスクリプトの「EXCEL」の文字列を、「WORD」や「POWERPOINT」に変更してみただけでは上手く動かない様です。) ↓1文章開いた状態だけなら保存して閉じてくれるが、2つ以上開くと保存して閉じてくれません。 <うまく動かなかったスクリプト> Set Word0 = GetObject(, "Word.Application") Word0.DisplayAlerts = vbfalse For Each Book0 in Word0.Documents If Book0.saved = vbfalse Then Book0.save Book0.close Next Word0.quit Set Powerpoint0 = GetObject(, "Powerpoint.Application") Powerpoint0.DisplayAlerts = vbfalse For Each Book0 in Powerpoint0.Presentations If Book0.saved = vbfalse Then Book0.save Book0.close Next Powerpoint0.quit

みんなの回答

  • seastar3
  • ベストアンサー率69% (99/142)
回答No.1

以下のWebページのノウハウが参考になるのではないかと思います。 WMI Fun !! 「アプリケーション/プロセスを終了する: Win32_Process - WMI Sample (VBS)」 http://www.wmifun.net/sample/win32_process_c.html 教えてgoo! Q&A 「アプリケーションを WSH から殺す方法」 http://okwave.jp/qa/q1527968.html 個々のアプリケーションの実行ファイル名を当てはめればよいのでしょうが、それぞれのオブジェクトで、.SAVED や .SAVE が働くかは確かめてみましょう。

FUELCYAN
質問者

補足

情景の文献、拝見致しましたが、 http://okwave.jp/qa/q5932062.htmlの情報を得た以上のノウハウは特に見つからなかった様です。 個々のアプリケーションの実行ファイル名を当てはめた場合、エクセルのスクリプトは、複数シート、複数ファイルを開いても、保存して閉じましたが、実行ファイル名だけを書き換えた、ワードやエクセルでは、一つのファイルだけ表示されていた時点では、見本のファイルは保存、終了してくれましたが、2つ以上開くと機能しませんでした。それ故、お問い合わせさせて頂いた由縁です。おそらく、他に考えられる所としては、IF文の後の、「Book0」あたりだろうとは思うのですが、検討が付きません。

関連するQ&A

専門家に質問してみよう