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 und Microsoft Powerpoint 2019 angewendet werden. Die gezeigten Abbildungen stammen aus Microsoft Powerpoint 2013 und unterscheiden sich nur visuell, aber nicht inhaltlich von den anderen Versionen. Um die Verwirrrung in Grenzen zu halten, haben wir bewusst darauf verzichtet Screenshots von bzw. für jede Version einzufügen.
Dateiformat
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.
Zielsetzung
Bevor wir anfangen sollten wir als Erstes klären, was unser Makro später können soll.
- Der Anwender soll die Beschriftung der Agenda einfügen können.
- Die Position der Inhaltsfolie soll über ein Eingabefeld festgelegt werden.
- Die Titel der ausgewählten Folien sollen automatisch in die Inhaltsfolie kopiert werden.
- 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:
- Der Programmcode kann nur für Folien funktionieren, bei denen der Folientitel auch im Platzhalter „Titel“ hinterlegt ist.
- Die Reihenfolge der Folientitel in der Agenda hängt davon ab, in welcher Reihenfolge die Folien ausgewählt wurden.
- 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.
Schnelle Lösung
Brauchen Sie eine schnelle Lösung und wollen sich nicht lange mit den Details aufhalten? Am Ende des Beitrags finden Sie die Musterpräsentation als Download.
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:
- Klicken Sie im Menüband auf Datei.
- Es öffnet sich der Backstagebereich. Hier klicken Sie auf Optionen.
- Das Fenster PowerPoint Optionen wird geöffnet. Klicken Sie auf Menüband anpassen.
- Der letzte Schritt ist nun, ein Häckchen bei den Entwicklertools im rechten Fensterabschnitt zu setzen und das ganze mit OK zu bestätigen.
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.
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 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:
Hinweis zur Sortierung
Um Ihnen das Experimentieren und evtl. auch ein wenig Verwirrung zu ersparen, sollten sie einfach alle Folien in das Inhaltsverzeichnis einfügen. Überschriften, die dort nicht erscheinen sollen können Sie später einfach löschen. Ebenso können Sie bei Bedarf die Reihenfolge der Einträge im Inhaltsverzeichnis anpassen.
Begründung:
Wenn Sie Folien mit gedrückter STRG-Taste einzeln auswählen, z.B. Folie 1, Folie 5, Folie 8, kehrt Powerpoint beim Einfügen der Einträge die Reihenfolge um. Im Inhaltsverzeichnis findet sich dann die Reihenfolge Folie 8, Folie 5, Folie 1. Ein ähnlich kurioses Verhalten zeigt sich, wenn Sie die Folien bei gedrückter SHIFT-Taste auswählen. Probieren Sie es gerne aus.
Eine Inhaltsfolie einfügen
Um das Makro anzuwenden oder zu testen erstellen Sie eine Präsentation mit einige Folien. Markieren Sie die Folien die 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.
Nun öffnen sich nacheinander zwei Fenster. Im ersten Fenster geben Sie die gewünschte Position der Inhaltsfolie und im Zweiten deren Überschrift an.
Wenn alles richtig gelaufen ist sollte das gewünschte Ergebnis eine Inhaltsfolie sein, in der die gewünschten Folientitel aufgelistet sind – je nach Auswahl mit oder ohne Hyperlinks.
Nun liegt es an Ihnen, den Code z.B. in Ihren Foliemaster oder eine Präsentationsvorlage einzubauen.
Viel Spaß damit!
Und hier der versprochene Download:
Automatisches Inhaltsverzeichnis
PowerPoint Schulungen bei INCAS Training
Ob Kompaktkurs, Grundlagen- oder Aufbauseminar, wir bieten Ihnen professionelle PowerPoint-Kurse an. Werfen Sie einen Blick in die Inhalte folgender Kurse:
- PowerPoint Grundlagen: Inhalte kraftvoll visualisieren und überzeugend präsentieren
- PowerPoint Aufbau: Planen, gestalten und präsentieren wie ein Profi
Wir sind Microsoft Partner und arbeiten ausschließlich mit qualifizierten Office Trainern zusammen. Die Spitzenbewertungen unserer Trainer und des Trainingsumfeldes sprechen für sich: Kurse bei INCAS Training sind der beste Weg, um sich professionell und mit Spaß einem Programm und seinen neuen Funktionen zu nähern.