Poslední aktualizace: červen 2020
Platí pro: Office 2019 a starší. Pouze Windows.
Zde je otázka od čtenáře:
V rámci své čtvrtletní prezentace zpráv vedení často potřebuji zkopírovat několik obecných informačních slidů z jiných prezentací. Není to velký problém, ale bylo by to značnou úsporou, kdyby bylo možné toto cvičení zautomatizovat. Jakákoli pomoc maker VBA k dosažení toho je oceňována!
Jak jste právě zmínili, můžete zautomatizovat kopírování a vkládání snímků v PowerPointu pomocí jazyka Visual Basic for Applications. Pokud potřebujete vytvořit několik prezentací každý měsíc, tato automatizace kopírování/importu snímků se může stát obrovskou úsporou času!
PowerPoint VBA pro přidávání snímků
Pojďme na toto jednoduché cvičení.
Nejprve se ujistěte, že je vaše karta Vývoj povolena a viditelná. Zde je návod, jak to udělat .
Předpokládám, že jste již vytvořili prezentaci s podporou maker (typ souboru je .pptm), kterou jste umístili do stejného adresáře jako zdrojovou prezentaci (kterou budu nazývat source.pptm). Zde je návod, jak vytvořit prezentaci v PowerPointu pomocí jazyka VBA .
Nejprve si udělejme zálohu této prezentace (jednoduché zkopírování a uložení).
Pak pokračujte a vložte následující makro do nového modulu VBA ve vaší cílové prezentaci. Všechny podrobnosti o tom, jak to udělat, najdete v našem výukovém programu PowerPoint VBA .
Zde je kód VBA, který budete potřebovat k automatickému kopírování a vkládání snímků.
Pár předpokladů, které jsem učinil:
- Vaše zdrojová prezentace se jmenuje source.pptm
- Vložíte snímky 2–4 ze zdrojové prezentace
- Zkopírované snímky umístíte na začátek snímku 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
Samozřejmě můžete změnit indexování čísel snímků v kódu tak, aby vyhovovaly vašim požadavkům.
Můžete procházet několika prezentacemi a vkládat konkrétní snímky z každé do vaší zprávy o řízení.
PowerPoint VBA pro duplikování snímků
Místo kopírování snímků do jiné prezentace můžete chtít naklonovat jeden nebo více snímků v prezentaci:
Sub CopySlides()
' Short snippet to duplicate the third slide in a presentation, change the index/es accrodingly
ActivePresentation.Slides(3).Duplicate
End Sub
To bylo jen pár jednoduchých příkladů automatizace PowerPointu. Čtenáři, kteří hledají konkrétní dotazy, neváhejte poslat dotaz prostřednictvím stránky Kontakt.
Snad to pomůže 🙂
Zachovat formátování při kopírování snímků
Problém s předchozím příkladem byl, že původní formátování motivu prezentací nebylo zkopírováno. Předpokládejme, že 2 listy měly odlišné formátování, stalo by se toto:
Příklad 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
|

Toto je prezentace se snímkem, který chceme zkopírovat:
Výsledek:
K vyřešení tohoto problému můžete použít níže uvedený kód:


|
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
|
Kromě zkopírování snímku výše uvedený kód zkopíruje návrh. Pokud byste to chtěli udělat ručně, zkopírujte předlohu snímků do nové prezentace. Předlohu snímků nemůžete zkopírovat pomocí jazyka VBA, ale místo toho můžete nastavit vlastnost návrhu snímků.