Laatst bijgewerkt: juni 2020
Van toepassing op: Office 2019 en ouder. Alleen ramen.
Hier een vraag van een lezer:
Als onderdeel van mijn driemaandelijkse rapportpresentatie aan het management, moet ik vaak verschillende algemene informatiedia's uit andere presentaties kopiëren. Geen big deal, maar het zou een aanzienlijke besparing zijn om deze oefening te kunnen automatiseren. Elke VBA-macrohulp om dat te bereiken wordt op prijs gesteld!
Zoals u zojuist zei, kunt u het kopiëren en plakken van dia's in PowerPoint automatiseren met Visual Basic for Applications. Als u elke maand meerdere presentaties moet maken, kan deze automatisering van het kopiëren / importeren van dia's een enorme tijdbesparing opleveren!
PowerPoint VBA voor het toevoegen van dia's
Laten we beginnen met deze eenvoudige oefening.
Zorg er allereerst voor dat uw ontwikkeltabblad is ingeschakeld en zichtbaar is. Hier is hoe dat te doen .
Ik neem aan dat je al een presentatie met Macro hebt gemaakt (bestandstype is .pptm), die je in dezelfde map hebt geplaatst als je bronpresentatie (die ik source.pptm zal noemen). Hier leest u hoe u een PowerPoint-presentatie maakt met VBA .
Laten we eerst een back-up maken van die presentatie (eenvoudig kopiëren en opslaan).
Laten we dan doorgaan en de volgende macro invoegen in een nieuwe VBA-module in uw doelpresentatie. Alle details over hoe u dat kunt doen, vindt u in onze PowerPoint VBA-tutorial .
Hier is de VBA-code die je nodig hebt om de dia's automatisch te kopiëren en te plakken.
Paar aannames die ik heb gemaakt:
- Uw bronpresentatie heet source.pptm
- U plakt dia's 2-4 uit uw bronpresentatie
- U plaatst de gekopieerde dia's vanaf dia 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
Het staat u uiteraard vrij om de indexering van het dianummer in de code te wijzigen, zodat ze aan uw vereisten voldoen.
U kunt meerdere presentaties doorlopen en van elke presentatie specifieke dia's invoegen in uw managementrapport.
PowerPoint VBA voor het dupliceren van dia's
In plaats van dia's naar een andere presentatie te kopiëren, wilt u misschien een of meer dia's in uw presentatie klonen:
Sub CopySlides()
' Short snippet to duplicate the third slide in a presentation, change the index/es accrodingly
ActivePresentation.Slides(3).Duplicate
End Sub
Dat waren slechts een paar eenvoudige voorbeelden van PowerPoint-automatisering. Lezers die op zoek zijn naar specifieke vragen, stuur gerust een vraag via de contactpagina.
Hoop dat het helpt
Behoud de opmaak bij het kopiëren van dia's
Het probleem met het vorige voorbeeld was dat de oorspronkelijke themaopmaak van de presentatie niet werd gekopieerd. Stel dat de twee vellen een verschillende opmaak hadden, dan zou dit er gebeurd zijn:
voorbeeld 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
|

Dit is de presentatie met de dia die we willen kopiëren:
Resultaat:
Om dit probleem op te lossen, kunt u de onderstaande code gebruiken:


| |
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
|
Naast het kopiëren van de dia kopieert de bovenstaande code het ontwerp. Als u dit handmatig zou willen doen, kopieert u de slidemaster naar de nieuwe presentatie. U kunt de slidemaster niet kopiëren met VBA, maar in plaats daarvan kunt u de ontwerpeigenschap van de dia's instellen.