Тип пользователя не определен макрос ошибка VBA в методе - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь вызвать подфункцию, но не удается с ошибкой:

Тип пользователя, не определенный в методе saveas в этой строке. Возможно, презентация не обрабатывается в vba

Ошибка находится в первой строке SavePDFAsPng:

Dim oPres As Presentation

Вот весь макрос:

Sub Button1_Click()
    Call SavePDFAsPng("C:\Users\gfas1\Desktop\ahm.pdf", "C:\Users\gfas1\Desktop\MyTest.PNG")
End Sub

Sub SavePDFAsPng(sPathToPDF As String, sPathToPNG As String)

            Dim oPres As Presentation
            Dim oSh As Shape

            ' Height/Width are hardcoded here
            ' You could get trickier and bring the PDF into any presentation
            ' once to get its proportions, delete it, set the slide size to the same
            ' proportions, then re-insert the PDF
            Dim sngWidth As Single
            Dim sngHeight As Single
            sngWidth = 612
            sngHeight = 792

            Set oPres = Presentations.Add
            With oPres
                With .PageSetup ' set it to 8.5x11
                    .SlideHeight = sngHeight  ' 11in * 72 points per inch
                    .SlideWidth = sngWidth
                End With
                .Slides.AddSlide 1, .SlideMaster.CustomLayouts(1)
                With .Slides(1)
                    Set oSh = .Shapes.AddOLEObject(0, 0, sngWidth, sngHeight, , sPathToPDF)
                    Call .Export(sPathToPNG, "PNG")
                End With
                .Saved = True
                .Close

            End With

        End Sub

1 Ответ

2 голосов
/ 08 октября 2019

Вы пометили вопрос с помощью «Excel», поэтому я предполагаю, что вы пытаетесь запустить этот макрос в Excel, который не будет работать, потому что тип Presentation по умолчанию отсутствует в Excel.

Это в PowerPoint:

https://docs.microsoft.com/en-us/office/vba/api/overview/powerpoint/object-model

https://docs.microsoft.com/en-us/office/vba/api/powerpoint.presentation

Этот макрос нужно запускать в PowerPoint, а не в Excel.

Вы можете запустить его в Excel, но вам необходимо импортировать библиотеку типов PowerPoint в проект Excel VBA, но это отдельный вопрос.

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