通过VBA关闭一个单独的PPT演示文稿(Excel)

时间:2018-12-30 16:18:38

标签: excel vba powerpoint

我想通过Excel中的VBA关闭PPT。问题出在代码“ PP.Close”上。 (最后一行代码)

  1. 它还会关闭其他打开的PPT演示文稿,不仅是我“定位”的演示文稿
  2. 有时它关闭Presentation和应用程序,有时我认为只是有时候Presentation很奇怪。

有人知道我该如何解决这些问题?

致以问候,并预先感谢

Sub Saveas_PPT()
Dim PP As PowerPoint.Presentation
Dim Sl As PowerPoint.Slide
Dim sh As Variant
Dim company As String
'Dim ws_company As Worksheet
Set Dropdown.ws_company = Tabelle2
company = Dropdown.ws_company.Range("C2").Value

Dim strPOTX As String
Dim strPfad As String
Dim pptApp As Object

strPfad = "C:\Users\Michael\" 'Ordner der Vorlage
 strPOTX = "Test.pptx" 'Hier theoretisch auch 
 filepicker möglich

 Set pptApp = New PowerPoint.Application

 Dim pptVorlage As String
 pptVorlage = strPfad & strPOTX


 Set PP = pptApp.Presentations.Open(pptVorlage)



 pptApp.ActivePresentation.UpdateLinks 


'  Dim x As Integer
'  For Each prs In PP.Application.Presentations
'
'  x = x + 1
'  

'If x > 1 Then
''pptApp.ActivePresentation.Close ' Hier auch
'  'PP.Close 'Problem: Hier wird alles geschlossen
'  Exit Sub
'End If
'  Next prs

 'pp.Application.Quit 'vorher FUnktion die schaut ob mehr als eine PPT offen sind. Wenn nur eine dann quit, sonst nur diese hier schließen
 pp.Close
 End Sub

1 个答案:

答案 0 :(得分:0)

我的建议是使用AppActivate函数。

它需要窗口的标题。
我不确定它是否可以正常运行,但至少正确的演示文稿将处于活动状态。

AppActivate("the PowerPoint title")

用Windows标题替换the PowerPoint title

如果这也失败了,也许可以在其后按ALT + F4使用sendkey关闭活动窗口,该窗口应该是您想要的演示文稿。