我正在尝试保存,然后使用VBScript关闭所有微软应用程序,例如word,excel和powerpoint。
我已经说得很好并且工作出色:
'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 :(得分:0)
这段代码应该通过循环遍历演示文稿集合(使用Office 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
答案 1 :(得分:0)
请注意,VBA<> VBScript中。可能想要更改标签以更正它。 无论如何,你的对象层次结构错误了
objPPT是一个PowerPoint应用程序对象。
Application对象有一个Presentations集合,每个打开的Presentation包含一个Presentation对象。 您想要遍历演示文稿集合。
试试这个。我从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