2017-03-10 48 views
0

我正在嘗試保存,然後關閉所有Microsoft應用程序,例如使用VBScript的word,excel和powerpoint。vbs保存並關閉powerpoint演示文稿

我有word和excel工作:

'Word 
On Error Resume Next 
Set wd = GetObject(, "Word.Application") 
On Error Goto 0 

If Not IsEmpty(wd) Then 
For Each doc In wd.Documents 
doc.Save 
doc.Close 
Next 

wd.Quit 
End If 

和:

'Excel 
On Error Resume Next 

Set xl = GetObject(, "Excel.Application") 
If Err Then 
If Err.Number = 429 Then 

WScript.Quit 0 
Else 

CreateObject("WScript.Shell").LogEvent 1, Err.Description & _ 
    " (0x" & Hex(Err.Number) & ")" 
WScript.Quit 1 
End If 
End If 
On Error Goto 0 

xl.DisplayAlerts = False 

For Each wb In xl.Workbooks 
wb.Save 
wb.Close False 
Next 

xl.Quit 
Set xl = Nothing 

可悲的是,我還沒有想出如何做同樣的事情與PowerPoint。我在網上進行了研究,但還沒有找到答案。我發現的所有工作都沒有使用VBScript。

這是我試圖讓工作腳本:

'PowerPoint 

On Error Resume Next 
Set objPPT = GetObject("PowerPoint.Application") 
On Error Goto 0 

If Not IsEmpty(objPPT) Then 
For Each doc In objPPT.Presentation 
objPresentation.Save 
objPresentation.Close 
objPPT.Quit 
Next 

objPPT.Quit 
End If 

當我運行該腳本,什麼都不會發生。

任何人都可以幫助我解決我的腳本嗎?

謝謝!

我希望花費的時間和精力!

回答

0

這個片段應該得到的是通過演示文稿收集循環完成(與2010年的辦公測試):

On Error Resume Next 
Set objPPT = GetObject(,"powerpoint.Application") 
On Error Goto 0 

If Not IsEmpty(objPPT) Then 
For Each doc In objPPT.Presentations 
doc.Save 
doc.Close 

Next 

objPPT.Quit 
End If 
+0

啊,你打我吧! ;-) –

0

注意,VBA <>的VBScript。可能想更改標籤以糾正該錯誤。 無論如何,你有對象層次結構錯誤

objPPT是一個PowerPoint應用程序對象。

Application對象有一個Presentations集合,每個打開的Presentation包含一個Presentation對象。 您想遍歷Presentations集合。

試試這個。我在從我的VBA大腦表面的VBScript語法猜測:

On Error Resume Next 
Set objPPT = GetObject("PowerPoint.Application") 
On Error Goto 0 

If Not IsEmpty(objPPT) Then 
For Each Presentation In objPPT.Presentations 
Presentation.Save 
Presentation.Close 
objPPT.Quit 
Next 

objPPT.Quit 
End If 
相關問題