Закрытие одной презентации PPT через VBA (Excel) - PullRequest
0 голосов
/ 30 декабря 2018

Я хотел бы закрыть PPT через VBA в Excel.Проблема с кодом "PP.Close".(последняя строка кода)

  1. Он также закрывает другие открытые презентации PPT, не только одну, которую я "целлю"
  2. Иногда он закрывает презентацию и приложение, иногда просто презентацию,что на мой взгляд странно.

Кто-нибудь знает, как я могу решить эти проблемы?

С уважением и заранее спасибо

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 голосов
/ 30 декабря 2018

Я предлагаю использовать функцию AppActivate .

Требуется заголовок окна.
Я не уверен, что это будет работать, но по крайней мере правильное представление будетбыть активным.

AppActivate("the PowerPoint title")

Заменить the PowerPoint title названием Windows.

Вы можете, если это тоже не удастся, возможно, использовать sendkeys после него для ALT + F4, чтобы закрыть активнуюокно, в котором должна быть презентация, которую вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...