Fra og med versjon 2007 av Powerpoint fjernet Microsoft funksjonalitet for å kunne lage innholdsfortegnelse i Powerpoint. Hvorfor de gjorde det er gåtefullt, ettersom det jo er svært nyttig å ha en innholdsfortegnelse i begynnelsen av en lang Powerpoint-presentasjon.
I dag har jeg jobbet med en Powerpoint-mal, og da dukket tanken opp igjen – det må være flere enn meg som savner innholdssiden, og dermed begynte jeg å lete på internett. Der kom jeg over en programmerer som hadde en noenlunde fungerende løsning. Den er ikke perfekt, ettersom den ikke er dynamisk (gjør du endringer, så må du slette innholdsfortegnelsen og lage en ny), men den gir i hvert fall til og med hyperlinkede referanser til slides. I tillegg fant jeg et lite tillegg til koden et stykke ned i kommentarfeltet, som gjorde at jeg kan plukke sidenummer for hver link. Dermed i sum noe som kan være svært hjelpsomt for flere enn meg.
Slik gjorde jeg det:
Jeg lastet ned en presentasjon på siden jeg fant som inneholder makroen(e). Åpne filen og si ja til å aktivere makroer.
Sørg for at Developer tab er aktivert i Powerpoint, slik at du kan jobbe med makroer og VBA.
I filen til Joel Jeffrey klikker du på Developer tab og Visual Basic ikonet. Du vil da se omtrent se det du ser på bildet under – og i VBA-prosjekt (Joels-Powerpoint-Macros) ser du to moduler:
- modQsortInPlace
- Module 1
Disse to modulene skal du eksportere. Eksport finner du i ved høyreklikke på modulen.
Når du har eksportert modulene kan du lukke filen igjen.
Åpne din egen Powerpoint-template og importer begge makroene inn i din template.
Som sagt så har jeg gjort en endring som gjør at jeg får sidenummer. Om du vil inkludere det, må du endre noe inne i koden, i den modulen som heter Module1. Endringen gjøres ved at seksjonen som har header «Iterate over the slides in Index order», slik:
Original:
'Iterate over the slides in Index order
For o = 1 To UBound(slideOrder)
If ActivePresentation.Slides(slideOrder(o)).Shapes.HasTitle Then
'Build up the ToC Text
strTitle = ActivePresentation.Slides(slideOrder(o)).Shapes.Title.TextFrame.TextRange.Text
strSel = strSel & strTitle & vbCrLf
End If
Next
Med slidenummer:
'Iterate over the slides in Index order
For o = 1 To UBound(slideOrder)
If ActivePresentation.Slides(slideOrder(o)).Shapes.HasTitle Then
'Build up the ToC Text
strTitle = ActivePresentation.Slides(slideOrder(o)).Shapes.Title.TextFrame.TextRange.Text
intSlideNumber = ActivePresentation.Slides(slideOrder(o)).SlideNumber
strSel = strSel & "Slide: " & intSlideNumber & " " & strTitle & vbCrLf
End If
Next
Da har du den makroen du trenger.
For å bruke den merker du de slidene du ønsker presentert i innholdsforteglensen, f.eks. i slide-sorter. Basert på det utvalget du gjør, vil makroen, når du kjører den, lage en innholdfortegnelse der de slidene du har valgt står listet opp. Du kan både ha bare vanlig tekst, eller du kan ha hyperlinket tekst, som gjør at du kan klikke deg inn på den siden det gjelder.
Makroen legger til et ark etter tittelsiden i presentasjonen, der den legger innholdsfortegnelsen. Jeg har i tillegg laget en Layout som jeg bruker på den siden, og da ser den slik ut:
Om noen kan fortelle meg hvordan jeg kunne fått dette med et oppsett slik at sidenummerne kommer helt til høyre på samme plass uavhengig av lengden på teksten, hadde jeg satt pris på en mail!
2 kommentarer til “Innholdsfortegnelse i Powerpoint”
Jeg har også lett lenge etter en løsning på dette. Fant til slutt et tysk selskap som lager en nyttig add-in til Powerpoint som også inneholder en agendagenerator. Agendageneratoren er dynamisk, så du slipper selv å holde styr på agendafoilene. Synes prisen er overkommelig, €99 årlig pr bruker.
Se http://www.efficient-elements.com/ for mer info.
-n
Hei Nils, og takk for tips. Jeg skjønner ikke hvorfor Microsoft fjernet denne funksjonaliteten. Virkelig ikke,