У вас уже есть PPApp
в качестве объекта приложения PowerPoint - продолжайте использовать его и уберите строки, определяющие PPProgram
.
Также объявите и создайте экземпляр объекта для добавляемой презентации:
Dim PPPres as Object
Set PPPres = PPApp.Presentations.Add
После этого используйте PPPres
для работы с презентацией
PPPres.Slides.Add PPPres.Slides.Count + 1, ppLayoutBlank
PPApp.ActiveWindow.View.GotoSlide PPPres.Slides.Count
Thisтакже означает, что цикл не нужен для сохранения и закрытия презентации
PPPres.SaveAs path & "\" & PPPres.FullName & ".pptx"
Application.Wait (Now + #12:00:03 AM#) ' Wait 3 seconds to allow the computer time to save the file before it closes it
PPPres.Close
Также неплохо явно освободить эти объекты до End Sub
:
Set PPPres = Nothing
Set PPApp = Nothing
Если вы хотитевсегда используйте CreateObject
для каждой презентации, тогда код также должен Quit
для приложения PowerPoint до , для которого установлено значение Nothing.Кроме того, код может проверять наличие PowerPoint, используя GetObject
, и только если он не запущен, используйте CreateObject
для его запуска.Вокруг есть множество примеров кода, которые показывают, как это сделать.