PowerPoint per VBA automatisch erstellen – mit Hilfe von ChatGPT

Viele KMU in Ostholstein nutzen PowerPoint täglich: Für Kundenpräsentationen, Schulungen oder interne Berichte. Doch das Erstellen von Präsentationen kostet Zeit – oft zu viel. Warum also nicht automatisieren?

Mit einem kleinen Trick kannst Du PowerPoint-Folien per VBA generieren – und Dir die nötigen Skripte sogar von ChatGPT schreiben lassen. Das spart nicht nur Stunden, sondern sorgt auch für wiederverwendbare Bausteine, zum Beispiel für LinkedIn-Karussells oder wiederkehrende Reports.

Was ist „Ausgabe als VBA“?

„Ausgabe als VBA“ bedeutet: Du formulierst Deine Idee oder Dein Konzept – z. B. „Erstelle eine 10-seitige Präsentation zum Thema SQL Server 2025 mit Code-Snippets“ – und lässt Dir von ChatGPT direkt den dazugehörigen VBA-Code liefern.

VBA steht für „Visual Basic for Applications“ und ist in Microsoft Office integriert – Du brauchst also keine zusätzliche Software oder Entwicklerumgebung. Nur PowerPoint und ein bisschen Mut zur Automatisierung.

Warum ist das sinnvoll?

Ganz einfach:

  • Zeitersparnis: Einmal aufgesetzt, kannst Du per Klick neue Präsentationen generieren – angepasst auf Kunden, Themen oder Zielgruppen.
  • Wiederverwendbarkeit: Strukturiere Inhalte als Vorlage – z. B. 10 Folien: Hook – Problem – Lösung – CTA – und produziere daraus regelmäßig neue Inhalte.
  • KI-gesteuert: ChatGPT liefert schnell passende Texte, Überschriften und sogar Beispielcode (T‑SQL, Python, Shell…) für jede Seite.

Schritt-für-Schritt-Anleitung

So gehst Du vor, um PowerPoint-Präsentationen automatisch zu erzeugen:

1. PowerPoint öffnen & in den VBA-Editor wechseln

  • Öffne PowerPoint (beliebige Datei oder leer).
  • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  • Wähle im Menü „Einfügen > Modul“, um ein neues VBA-Modul zu erzeugen.

2. ChatGPT befragen

Formuliere z. B. so:

„Erstelle mir ein VBA-Makro, das eine 10-seitige PowerPoint-Präsentation im 1:1-Format erzeugt mit den Themen X, Y, Z – optional mit Beispiel-Code auf den Slides.“

Wichtig: Sag ChatGPT gleich, dass es VBA-Code ausgeben soll, sonst bekommst Du nur allgemeine Tipps.

3. Code aus ChatGPT kopieren

  • Den Code aus der Antwort einfach 1:1 in Dein PowerPoint-VBA-Modul kopieren.
  • Speichern als .pptm-Datei (Makro-kompatibel).

4. Makro ausführen

  • Im Editor F5 drücken oder aus dem Menü „Ausführen“ starten.
  • Die Folien werden automatisch erstellt – Du kannst Text, Layout oder Farben nachträglich anpassen.

Was kann man automatisieren?

Beispiele aus dem Alltag:

  • Produktpräsentationen mit Bildern, Headlines und T‑SQL-Beispielen
  • LinkedIn-Posts als Karussell (quadratisches Format, ein Thema in 10 Teilen)
  • Schulungsunterlagen oder Kundeninfos auf Knopfdruck
  • Wöchentliche Reports aus Datenbanken (kombiniert mit Excel und Access VBA)

Für Fortgeschrittene

Das Ganze lässt sich natürlich weiterdenken:

  • Texte, Überschriften und CTA von ChatGPT automatisch generieren
  • Daten aus Access oder SQL Server lesen und als Folien visualisieren
  • Designvorlagen, Logos oder Icons einbinden
  • Bilder oder Diagramme automatisch per URL oder Ordnerpfad einfügen

Und mit Tools wie ClipChamp, Publer oder Meta Business Suite kannst Du die Inhalte gleich weiterverwenden – für Instagram, Facebook, LinkedIn oder interne Präsentationen.

Wenn Du PowerPoint noch manuell baust, vergeudest Du Zeit. Die Kombination aus VBA und ChatGPT ist ein echter Produktivitätshebel – besonders für wiederkehrende Inhalte.

Gerade für KMU mit wenig Personal und viel Kommunikationsbedarf lohnt sich das – weil Automatisierung heute keine Spielerei mehr ist, sondern ein Wettbewerbsvorteil.

Sönke Schäfer, VBA-Experte bei SeSoft GmbH Web/Database/Solutions

Der vollständige Power Point VBA-Code aus ChatGPT

Sub CreateFancySQLDeck()
    Dim ppt As Presentation
    Dim s As Slide
    Dim i As Integer
    Dim logoPath As String: logoPath = "C:\Vorlagen\logo.png"
    Dim bgPath As String: bgPath = "C:\Vorlagen\background10.jpg"

    Set ppt = Presentations.Add
    ppt.PageSetup.SlideWidth = 720
    ppt.PageSetup.SlideHeight = 720

    ' Designfarbe (z. B. Datenschäfer-Orange)
    Dim headlineColor As Long: headlineColor = RGB(255, 102, 0)
    Dim bgColor As Long: bgColor = RGB(245, 245, 245)

    Dim topics As Variant
    topics = Array( _
        Array("Warum SQL Server 2025 ein Game-Changer ist", ""), _
        Array("Motivation: Konkurrenz zieht davon? Zeit aufzurüsten.", ""), _
        Array("AI & Vector Search", "CREATE VECTOR INDEX vi ON dbo.Embeddings(vec_column);"), _
        Array("REST aus SQL", "EXEC sp_invoke_external_rest_endpoint 'MyModel', @input;"), _
        Array("RegEx & JSON Index", "SELECT * FROM dbo.Table WHERE col REGEXP '^[A-Z]{3}\\d+';"), _
        Array("Change Streaming", "SELECT * FROM dbo.Table WHERE __$operation = 'UPDATE';"), _
        Array("Fabric Mirror & Arc", "ALTER DATABASE db SET REMOTE_DATA_ARCHIVE = ON;"), _
        Array("Optimiertes Locking", "ALTER DATABASE SCOPED CONFIGURATION SET OPTIMIZED_LOCKING = ON;"), _
        Array("Copilot & Python Driver", "Mit SSMS21 + Open-Source-Driver alles im Griff"), _
        Array("Los geht's! Testen, trainieren, automatisieren!", "") _
    )

    For i = LBound(topics) To UBound(topics)
        Set s = ppt.Slides.Add(i + 1, ppLayoutBlank)
        s.FollowMasterBackground = msoFalse
        s.Background.Fill.BackColor.RGB = bgColor

        ' Logo einfügen (oben links)
        On Error Resume Next
        s.Shapes.AddPicture FileName:=logoPath, _
            LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, _
            Left:=20, Top:=20, Width:=60, Height:=60
        On Error GoTo 0

        ' Titel
        With s.Shapes.AddTextbox(msoTextOrientationHorizontal, 100, 60, 520, 100)
            With .TextFrame.TextRange
                .Text = topics(i)(0)
                .Font.Name = "Segoe UI Semibold"
                .Font.Size = 28
                .Font.Color.RGB = headlineColor
            End With
        End With

        ' Inhalt oder Code
        If topics(i)(1) <> "" Then
            With s.Shapes.AddTextbox(msoTextOrientationHorizontal, 80, 180, 560, 400)
                With .TextFrame.TextRange
                    .Text = topics(i)(1)
                    .Font.Name = IIf(Left(topics(i)(1), 6) = "SELECT" Or Left(topics(i)(1), 6) = "CREATE", "Consolas", "Segoe UI")
                    .Font.Size = 16
                    .Font.Color.RGB = RGB(50, 50, 50)
                End With
                .Fill.ForeColor.RGB = RGB(255, 255, 255)
                .Line.ForeColor.RGB = RGB(220, 220, 220)
            End With
        End If

        ' Letzte Folie: Bildhintergrund
        If i = 9 Then
            On Error Resume Next
            s.FollowMasterBackground = msoFalse
            s.Background.Fill.UserPicture bgPath
            On Error GoTo 0

            ' CTA-Overlay
            With s.Shapes.AddTextbox(msoTextOrientationHorizontal, 60, 500, 600, 100)
                With .TextFrame.TextRange
                    .Text = "Jetzt testen, Kollegen einladen, Daten automatisieren!" & vbCrLf & "Datenschäfer - www.sesoft.de"
                    .Font.Name = "Segoe UI"
                    .Font.Size = 18
                    .Font.Bold = True
                    .Font.Color.RGB = RGB(255, 255, 255)
                End With
                .Fill.BackColor.RGB = RGB(0, 0, 0)
                .Fill.Transparency = 0.3
            End With
        End If
    Next

    ppt.SaveAs "C:\Temp\SQL2025_Pitch.pptm"
    ppt.Close
    MsgBox "Präsentation erstellt in C:\Temp\SQL2025_Pitch.pptm", vbInformation
End Sub