Automatische Inhaltsfolie in PowerPoint

Mit der Microsoft Office Version 2007 ist ein Feature aus Powerpoint verschwunden, welches viele Anwender gern und häufig genutzt haben – die Inhaltsfolie. Diese konnte bis zur Version von Microsoft Powerpoint 2003 noch bequem über ein paar Tastenklicks eingefügt werden. Ab der Version Microsoft Powerpoint 2007 kann man leider nur noch auf die Copy und Paste Variante zurückgreifen. Man fügt eine neue Folie ein und kopiert entweder jeden Folientitel einzeln oder, etwas professioneller, man wechselt in die Gliederungsansicht der Präsentation, kopiert dort die Folientitel „am Stück“ und kopiert diese in die neue leere Folie.

Möchten man das Einfügen einer Inhaltsfolie aber wieder richtig professionel gestalten, kann man auf die Möglichkeiten von VBA (Visual Basic for Applications) von Microsoft Powerpoint zurückgreifen.

In diesem Beitrag zeigen wir Ihnen, wie Sie mit ein paar Handgriffen und einem übersichtlichen Code, den Sie natürlich frei kopieren und nutzen dürfen, zukünftig wieder mit ein paar schnellen Klicks eine Inhaltsfolie in Ihre Powerpoint Präsentation einfügen können.

Hinweis:

Der hier aufgezeigte Weg kann in Microsoft Powerpoint 2007, Microsoft Powerpoint 2010, Microsoft Powerpoint 2013 und Microsoft Powerpoint 2016 angewendet werden. Die gezeigten Abbildungen stammen aus Microsoft Powerpoint 2013 und unterscheiden sich nur visuell, aber nicht inhaltlich von den anderen Versionen.
Präsentationen, in denen sich Makros befinden, müssen im Dateiformat *.pptm gespeichert werden. Werden sie im „normalen“ Format (*.ppt) gespeichert, gehen die Makros verloren.

Datei im Format *.pptm speichern

Datei im Format *.pptm speichern

Zielsetzung

Bevor wir anfangen sollten wir als Erstes klären, was unser Makro später können soll.

  1. Der Anwender soll die Beschriftung der Agenda einfügen können.
  2. Die Position der Inhaltsfolie soll über ein Eingabefeld festgelegt werden.
  3. Die Titel der ausgewählten Folien sollen automatisch in die Inhaltsfolie kopiert werden.
  4. Der Anwender soll wählen können, ob die Überschriften als Text oder als Text mit Hyperlink in die Inhaltsfolie übernommen werden.

Leider gibt es auch ein paar kleine Einschränkungen:

  1. Der Programmcode kann nur für Folien funktionieren, bei denen der Folientitel auch im Platzhalter „Titel“ hinterlegt ist.
  2. Die Reihenfolge der Folientitel in der Agenda hängt davon ab, in welcher Reihenfolge die Folien ausgewählt wurden.
  3. Wenn zu viele Folien markiert werden, werden die Titel in der Inhaltsfolie über den Folienbereich hinaus geschrieben. Bei großen Präsentationen müssen aus diesem Grund eventuell mehrere Inhaltsfolien erstellt werden.

Man könnte diese Einschränkung mit weiterer VBA-Programmierung aus dem Weg räumen. Allerdings ist der Aufwand für eine schnelle Lösung nicht zwingend erforderlich und die Einschränkungen sind nicht so gravierend, wie der Aufwand zur VBA-Lösung hoch wäre.

Code einfügen

Was nun noch fehlt ist natürlich der Code und der Ort, wo wir ihn einfügen können. Dieser Ort ist der VBA Editor von Microsoft Office. Erreichen kann man ihn ganz schnell über die Tastenkombination [Alt] + [F11]. Ich empfehle aber, die Entwicklertools im Menüband einzublenden. Hier finden Sie u.a. die Möglichkeit, ihre Makros später jederzeit zu starten ohne den VBA Editor öffnen zu müssen.

Entwicklertools dauerhaft einblenden

Um das Register Entwicklertools dauerhaft im Menüband einzublenden gehen Sie wie folgt vor:

  1. Klicken Sie im Menüband auf Datei.
  2. Es öffnet sich der Backstagebereich. Hier klicken Sie auf Optionen.
  3. Das Fenster PowerPoint Optionen wird geöffnet. Klicken Sie auf Menüband anpassen.
  4. Der letzte Schritt ist nun, ein Häckchen bei den Entwicklertools im rechten Fensterabschnitt zu setzen und das ganze mit OK zu bestätigen.
Entwicklertools in PowerPoint einblenden

Entwicklertools in PowerPoint einblenden

Starten Sie nun den VBA Editor über die Schaltfläche Visual Basic im Register Entwicklertools. Im noch leeren VBA Editor benötigen wir ein neues leeres Modul, welches wir über Einfügen>Modul hinzufügen.

Modul einfügen

Modul einfügen

Im letzten Schritt kopieren wir den Code in das Modulfenster.

Option Explicit

Sub Agenda(Optional Hyperlinks As Boolean)
    Dim i As Integer
    Dim o As Integer
    Dim strSel As String
    Dim strTitel As String
    Dim strAgendaTitel As String
    Dim slAgenda As Slide
    Dim intPos As Integer
    Dim FolienFolge() As Integer
    
    On Error Resume Next

    If ActiveWindow.Selection.SlideRange.Count > 0 Then
        ReDim FolienFolge(1 To ActiveWindow.Selection.SlideRange.Count)
        
        'Position der Inhaltsfolie wählen
        intPos = InputBox("VOR welcher Folie soll die Agenda eingefügt werden?", "Position der Agenda")
        
        'Abbruch falls der Wert größer ist als die Anzahl der Folien
        If intPos > ActivePresentation.Slides.Count Then
            MsgBox "Der gewählte Wert ist größer als die Anzahl der Folien in der Präsentation."
            Exit Sub
        End If
                
        'Titel der Inhaltsfolie eingeben
        strAgendaTitel = InputBox("Welche Überschrift soll die Inhaltsfolie erhalten?", "Titel eingeben")
        
        'IDs der gewählten Folien ermitteln
        For i = 1 To ActiveWindow.Selection.SlideRange.Count
            FolienFolge(i) = ActiveWindow.Selection.SlideRange(i).SlideIndex
        Next
                
        For o = 1 To UBound(FolienFolge)
            If ActivePresentation.Slides(FolienFolge(o)).Shapes.HasTitle Then
                'Build up the ToC Text
                strTitel = ActivePresentation.Slides(FolienFolge(o)).Shapes.Title.TextFrame.TextRange.Text
                strSel = strSel & strTitel & vbCrLf
            End If
        Next
                
        'Leere Folie an der gewünschten Stelle einfügen, Titel und Überschriften eintragen
        Set slAgenda = ActivePresentation.Slides.Add(intPos, ppLayoutText)
        slAgenda.Shapes(1).TextFrame.TextRange = strAgendaTitel
        slAgenda.Shapes(2).TextFrame.TextRange = strSel

        'Hyperlinks einfügen
        If Hyperlinks Then
            For o = 1 To UBound(FolienFolge)
                If ActivePresentation.Slides(FolienFolge(o) + 1).Shapes.HasTitle Then
                    'Build up the ToC Text
                    strTitel = ActivePresentation.Slides(FolienFolge(o) + 1).Shapes.Title.TextFrame.TextRange.Text
                    With slAgenda.Shapes(2).TextFrame.TextRange.Paragraphs(o).ActionSettings(ppMouseClick)
                        .Action = ppActionHyperlink
                        .Hyperlink.Address = ""
                        .Hyperlink.SubAddress = ActivePresentation.Slides(FolienFolge(o) + 1).SlideID & "," & ActivePresentation.Slides(FolienFolge(o) + 1).SlideIndex & "," + strTitel
                    End With
                End If
            Next
        End If
    End If
End Sub

Sub AgendaOhneHyperlinks()
'Agenda ohne Hyperlinks einfügen
    Agenda (False)
End Sub

Sub AgendaMitHyperlinks()
'Agenda mit Hyperlinks einfügen
    Agenda (True)
End Sub

Das Ergebnis sollte annähernd so aussehen:

VBA Editor mit eingefügtem Code

VBA Editor mit eingefügtem Code

Eine Inhaltsfolie einfügen

Um das Makro anzuwenden erstellen Sie eine Präsentation mit einige Folien. Markieren Sie die Folien in der Reihenfolge, in der sie in der Übersicht angezeigt werden sollen. Wählen Sie dann im Register Entwicklertools die Schaltfläche Makros. Es öffnet sich ein Fenster, in dem alle Makros aufgelistet werden, die Ihnen in der Präsentation zur Verfügung stehen. Wählen Sie die Agenda mit oder ohne Hyperlinks aus und bestätigen Sie die Auswahl mit einem Klick auf die Ausführen Schaltfläche.

Makro starten

Makro starten

Nun öffnen sich nacheinander zwei Fenster. Im ersten Fenster geben Sie die gewünschte Position der Inhaltsfolie und im Zweiten deren Überschrift an.

Ort und Titel eingeben

Ort und Titel eingeben

Wenn alles richtig gelaufen ist sollte das gewünschte Ergebnis eine Inhaltsfolie sein, in der die gewünschten Folientitel aufgelistet sind – je nach erster Auswahl mit oder ohne Hyperlinks.

Inhaltsfolien mit und ohne Hyperlink

Inhaltsfolien mit und ohne Hyperlink

Nun liegt es an Ihnen, den Code z.B. in Ihr Foliemaster oder eine Präsentationsvorlage einzubauen.
Viel Spaß damit!

Comments are closed.

Kategorien

Archiv