Экспорт всех слайдов PowerPoint в формате .PDF - PullRequest
0 голосов
/ 09 апреля 2019

Во-первых, позвольте мне сказать, что я абсолютно не знаком с VBA, поэтому извините за публикацию двух основных вопросов два дня подряд.

Я успешно извлекаю все диаграммы из листа Excel, открываю и вставляю их в слайды PowerPoint.Наконец, у меня возникают проблемы при попытке пройтись по презентации PowerPoint и экспортировать каждый слайд .pdf

Приведенный ниже код изменен из примеров, найденных в StackOverflow, таких как здесь VBA - Экспорт отдельных слайдов PowerPoint в файлы PDF,назван в поле содержимого , а также здесь Экспорт каждого слайда Powerpoint в отдельный файл PDF .а также здесь Сохранить презентацию PowerPoint в формате pdf в vba

Пользователи в этих постах, похоже, успешно запустили свой код.Тем не менее, я получаю Object doesn't support this method or property на линии objPPTApp.ExportAsFixedFormat до RangeType:=ppPrintSelection.Мне очень любопытно, что я делаю здесь неправильно, так как все учебники в Интернете используют один и тот же кусок кода.Есть ли что-то, что было обновлено в 2019 году?Спасибо.

Const ppLayoutBlank = 2
Const ppViewSlide = 1
Const ppFixedFormatTypePDF As Long = 2
Const ppPrintSelection As Long = 2
Option Explicit


Sub ExportChartstoPowerPoint()
Dim PPApp As Object
Dim chr
Set PPApp = CreateObject("PowerPoint.Application")
PPApp.Presentations.Add
PPApp.ActiveWindow.ViewType = ppViewSlide
For Each chr In Sheets("% LA Closed SLA").ChartObjects
    PPApp.ActivePresentation.Slides.Add PPApp.ActivePresentation.Slides.Count + 1, ppLayoutBlank
    PPApp.ActiveWindow.View.GotoSlide PPApp.ActivePresentation.Slides.Count
    chr.Select
    ActiveChart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture
    PPApp.ActiveWindow.View.Paste
    PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
    PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
Next chr
PPApp.Visible = True

If MsgBox("Would you like to save each slide to .PDF?", vbOKCancel) = vbOK Then

Dim path As String
Dim objPPTApp As Object
Dim slide As Object

path = GetSetting("FPPT", "Export", "Default Path")

With Application.FileDialog(msoFileDialogFolderPicker)
    .InitialFileName = path
    .AllowMultiSelect = False
    .Title = "Select destination folder"
    .Show
If .SelectedItems.Count = 1 Then
    path = .SelectedItems(1)
    MsgBox "Saving slides to " + path
Else
    MsgBox "No file path chosen"

End If
End With

Dim oPPT As Object, oSlide As Object
Dim sPath As String, sExt As String
Dim i As Variant

Set objPPTApp = GetObject(, "PowerPoint.Application")

For Each oSlide In objPPTApp.ActivePresentation.Slides
    i = oSlide.SlideIndex
    oSlide.Select

    objPPTApp.ExportAsFixedFormat _
        path:=sPath & i & ".pdf", _
        FixedFormatType:=2, _
        RangeType:=3

Next oSlide
Set oPPT = Nothing

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