Sist oppdatert: juni 2020
Gjelder for: Office 2019 og eldre. Kun Windows.
Her er et spørsmål fra en leser:
Som en del av min kvartalsrapportpresentasjon til ledelsen må jeg ofte kopiere flere generelle informasjonsbilder fra andre presentasjoner. Ikke en stor sak, men det ville vært en betydelig besparelse å kunne automatisere denne øvelsen. Enhver VBA-makrohjelp til å oppnå det settes pris på!
Som du nettopp nevnte, kan du automatisere lysbildene kopiere og lime inn i PowerPoint ved å bruke Visual Basic for Applications. Hvis du trenger å lage flere presentasjoner hver måned, kan denne automatiseringen av kopiering/import av lysbilder bli en enorm tidsbesparelse!
PowerPoint VBA for å legge til lysbilder
La oss komme i gang med denne enkle øvelsen.
Først og fremst, sørg for at utviklingsfanen din er aktivert og synlig. Slik gjør du det .
Jeg antar at du allerede har laget en makroaktivert presentasjon (filtypen er .pptm), som du har plassert i samme katalog som kildepresentasjonen (som jeg vil referere til som source.pptm). Slik lager du en PowerPoint-presentasjon med VBA .
La oss først ta en sikkerhetskopi av presentasjonen (enkel kopiering og lagring).
Så la oss gå videre og sette inn følgende makro i en ny VBA-modul i destinasjonspresentasjonen. Alle detaljer om hvordan du gjør det finner du i vår PowerPoint VBA-opplæring .
Her er VBA-koden du trenger for å kopiere og lime inn lysbildene automatisk.
Et par antakelser jeg gjorde:
- Kildepresentasjonen din heter source.pptm
- Du limer inn lysbilder 2-4 fra kildepresentasjonen
- Du plasserer de kopierte lysbildene, startlysbilde 5.
Sub InsertFromOtherPres()
' This short VBA macro copies slides from one presentation and inserts them into another
ActivePresentation.Slides.InsertFromFile FileName:="source.pptm", Index:=1, SlideStart:=2,
SlideEnd:=4
End Sub
Selvfølgelig kan du gjerne endre lysbildenummerindekseringen i koden slik at de passer til dine behov.
Du kan få det til å gå gjennom flere presentasjoner og sette inn spesifikke lysbilder fra hver av dem i ledelsesrapporten.
PowerPoint VBA for duplisering av lysbilder
I stedet for å kopiere lysbilder til en annen presentasjon vil du kanskje klone ett eller flere lysbilder i presentasjonen:
Sub CopySlides()
' Short snippet to duplicate the third slide in a presentation, change the index/es accrodingly
ActivePresentation.Slides(3).Duplicate
End Sub
Dette var bare et par enkle eksempler på PowerPoint-automatisering. Lesere som leter etter spesifikke spørsmål, send gjerne en forespørsel via kontaktsiden.
Håper det hjelper 🙂
Behold formatering når du kopierer lysbilder
Problemet med det forrige eksemplet var at originale presentasjoners temaformatering ikke ble kopiert over. Anta at de to arkene hadde forskjellig formatering, dette er hva som ville ha skjedd:
Eksempel 1
| |
Sub main()
Dim objPresentation As Presentation
Dim i As Integer
'open the target presentation
Set objPresentation = Presentations.Open("C:\2.pptx")
For i = 1 To objPresentation.Slides.Count
objPresentation.Slides.Item(i).Copy
Presentations.Item(1).Slides.Paste
Next i
objPresentation.Close
End Sub
|

Dette er presentasjonen med lysbildet vi ønsker å kopiere:
Resultat:
For å løse dette problemet kan du bruke koden nedenfor:
![Lysbilder som skal kopieres]()
![Resultat]()
| |
Sub Example2()
Dim objPresentation As Presentation
Dim i As Integer
'open the target presentation
Set objPresentation = Presentations.Open("C:\2.pptx")
For i = 1 To objPresentation.Slides.Count
objPresentation.Slides.Item(i).Copy
Presentations.Item(1).Slides.Paste
Presentations.Item(1).Slides.Item(Presentations.Item(1).Slides.Count).Design = _
objPresentation.Slides.Item(i).Design
Next i
objPresentation.Close
End Sub
|
Bortsett fra å kopiere lysbildet, kopierer koden ovenfor designet. Hvis du ville gjøre dette manuelt, ville du kopiere slidemasteren over til den nye presentasjonen. Du kan ikke kopiere slidemasteren ved å bruke VBA, men i stedet kan du angi designegenskapen til lysbildene.