AW: VBA und Powerpoint
21.03.2023 17:13:44
Yal
Hallo Thomas,
für ein "Kaum Excel/VBA-Kenntnisse" ist schon den Einstieg in der Excel-Progammierung im wesentlichen von einem Gegenstand geholfen: den Makrorekorder.
In Powerpoint ist es schwieriger, weil es keinen Rekorder gibt.
D.h. Du musst
_ dich in dem PowerPoint-Welt einarbeiten,
_ in VBA einarbeiten
_ in dem Objekt-Modell von ppt einarbeiten
Objekt-Modell heisst in Excel: Ein Datei ist in VBA ein "Workbook", ein Workbook besteht aus Worksheets (Blätter), die selber Bereiche ("Range") haben und einzelne Zelle (sonderfall von Range, die mit .Cells(Ziele, Spalte) adressiert werden können).
Für Powerpoint gibt es das Ober-Objekt Presentation, dann Slides, dann Shapes usw.
Siehe: https://learn.microsoft.com/de-de/office/vba/api/overview/powerpoint/object-model
Von da an, gehst Du in das Objekt Presentation und dessen Methode ExportAsFixedFormat. Darin gibt es ein Beispiel.
Du musst dann auch das Objekt PrintRange anschauen
Dein Anliegen sieht ungefähr so aus (es ist ein ppt-VBA, also in einem ppt-VB-Modul reinbringen):
Sub test()
Dim P As Presentation
Dim S As Slide
Dim i As Long
Dim pr As PrintRange
Const cPfad = "C:\temp\"
Set P = ActivePresentation
For i = 1 To P.Slides.Count
Set S = P.Slides(i)
Debug.Print S.Name
pr.Start = i
pr.End = i
P.ExportAsFixedFormat cPfad & S.Name & ".pdf", ppFixedFormatTypePDF, ppFixedFormatIntentScreen, _
msoCTrue, ppPrintHandoutHorizontalFirst, ppPrintOutputBuildSlides, msoFalse, _
pr, ppPrintSlideRange, , False, False, False, False, False
Next
End Sub
Ungetestet, bzw. gerade aus dem Arm geschütelt, da ich sehr selten in PPT programmiere.
VG
Yal