Senast uppdaterad: juni 2020
Gäller: Office 2019 och äldre. Endast Windows.
Här är en fråga från en läsare:
Som en del av min kvartalsrapportpresentation för ledningen behöver jag ofta kopiera flera allmänna informationsbilder från andra presentationer. Ingen stor sak, men det skulle vara en betydande besparing att kunna automatisera denna övning. Alla VBA-makrohjälp för att åstadkomma det uppskattas!
Som du just nämnde kan du automatisera bilderna kopiera och klistra in i PowerPoint med Visual Basic for Applications. Om du behöver skapa flera presentationer varje månad kan denna automatisering av kopiering/import av bilder bli en enorm tidsbesparing!
PowerPoint VBA för att lägga till bilder
Låt oss komma igång med denna enkla övning.
Först och främst, se till att din utvecklingsflik är aktiverad och synlig. Så här gör du det .
Jag antar att du redan har skapat en makroaktiverad presentation (filtypen är .pptm), som du har placerat i samma katalog som din källpresentation (som jag kommer att referera till som source.pptm). Så här skapar du en PowerPoint-presentation med VBA .
Först och främst, låt oss ta en säkerhetskopia av den presentationen (enkel kopiera och spara).
Låt oss sedan gå vidare och infoga följande makro i en ny VBA-modul i din destinationspresentation. All information om hur du gör det finns i vår PowerPoint VBA-handledning .
Här är VBA-koden som du behöver för att automatiskt kopiera och klistra in bilderna.
Ett par antaganden jag gjorde:
- Din källpresentation heter source.pptm
- Du kommer att klistra in bilder 2-4 från din källpresentation
- Du kommer att placera de kopierade bilderna från startbild 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
Uppenbarligen är du välkommen att ändra bildnummerindexeringen i koden så att de passar dina krav.
Du kan få det att gå igenom flera presentationer och infoga specifika bilder från var och en i din förvaltningsrapport.
PowerPoint VBA för duplicering av bilder
Istället för att kopiera bilder till en annan presentation kanske du vill klona en eller flera bilder i din presentation:
Sub CopySlides()
' Short snippet to duplicate the third slide in a presentation, change the index/es accrodingly
ActivePresentation.Slides(3).Duplicate
End Sub
Det var bara ett par enkla exempel på PowerPoint-automatisering. Läsare som söker specifika frågor, skicka gärna en förfrågan via kontaktsidan.
Hoppas det hjälper 🙂
Bevara formateringen när du kopierar bilder
Problemet med det föregående exemplet var att originalpresentationstemaformateringen inte kopierades över. Anta att de två arken hade olika formatering, detta är vad som skulle ha hänt:
Exempel 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
|

Detta är presentationen med bilden vi vill kopiera:
Resultat:
För att lösa problemet kan du använda koden nedan:


| |
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
|
Förutom att kopiera bilden kopierar koden ovan designen. Om du ville göra detta manuellt skulle du kopiera slidemastern till den nya presentationen. Du kan inte kopiera slidemastern med VBA utan istället kan du ställa in designegenskapen för bilderna.