Posledná aktualizácia: jún 2020
Platí pre: Office 2019 a starší. Iba Windows.
Tu je otázka od čitateľa:
V rámci svojej štvrťročnej prezentácie správ vedeniu často potrebujem skopírovať niekoľko všeobecných informačných snímok z iných prezentácií. Nie je to veľký problém, ale zautomatizovať toto cvičenie by znamenalo výraznú úsporu. Oceňujeme akúkoľvek pomoc s makrami VBA, aby ste to dosiahli!
Ako ste práve spomenuli, môžete zautomatizovať kopírovanie a vkladanie snímok v PowerPointe pomocou jazyka Visual Basic for Applications. Ak potrebujete vytvoriť niekoľko prezentácií každý mesiac, táto automatizácia kopírovania/importu snímok môže byť obrovskou úsporou času!
PowerPoint VBA na pridávanie snímok
Poďme na toto jednoduché cvičenie.
Najprv sa uistite, že vaša karta vývoja je povolená a viditeľná. Tu je návod, ako to urobiť .
Budem predpokladať, že ste už vytvorili prezentáciu s podporou makra (typ súboru je .pptm), ktorú ste umiestnili do rovnakého adresára ako vaša zdrojová prezentácia (ktorú budem označovať ako source.pptm). Tu je návod, ako vytvoriť prezentáciu programu PowerPoint pomocou jazyka VBA .
Najprv urobme zálohu tejto prezentácie (jednoduché skopírovanie a uloženie).
Potom pokračujte a vložte nasledujúce makro do nového modulu VBA vo vašej cieľovej prezentácii. Všetky podrobnosti o tom, ako to urobiť, nájdete v našom návode PowerPoint VBA .
Tu je kód VBA, ktorý budete potrebovať na automatické skopírovanie a prilepenie snímok.
Zopár predpokladov, ktoré som urobil:
- Vaša zdrojová prezentácia má názov source.pptm
- Prilepíte snímky 2 až 4 zo zdrojovej prezentácie
- Skopírované snímky umiestnite na začiatok snímky 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
Samozrejme, neváhajte zmeniť indexovanie čísel snímok v kóde tak, aby vyhovovali vašim požiadavkám.
Môžete prechádzať niekoľkými prezentáciami a vkladať konkrétne snímky z každej do správy o správe.
PowerPoint VBA na duplikovanie snímok
Namiesto kopírovania snímok do inej prezentácie možno budete chcieť naklonovať jednu alebo viacero snímok v prezentácii:
Sub CopySlides()
' Short snippet to duplicate the third slide in a presentation, change the index/es accrodingly
ActivePresentation.Slides(3).Duplicate
End Sub
To bolo len pár jednoduchých príkladov automatizácie PowerPointu. Čitatelia, ktorí hľadajú konkrétne otázky, pokojne pošlite dopyt cez stránku Kontakt.
Dúfam, že to pomôže 🙂
Zachovať formátovanie pri kopírovaní snímok
Problém s predchádzajúcim príkladom bol, že pôvodné formátovanie motívov prezentácií nebolo skopírované. Predpokladajme, že 2 hárky mali odlišné formátovanie, stalo by sa toto:
Prí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 prezentácia so snímkou, ktorú chceme skopírovať:
Výsledok:
Na prekonanie tohto problému môžete použiť nasledujúci kód:
![Snímky, ktoré sa majú skopírovať]()
![Výsledok]()
| |
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
|
Okrem kopírovania snímky vyššie uvedený kód kopíruje dizajn. Ak by ste to chceli urobiť ručne, skopírujte predlohu snímok do novej prezentácie. Predlohu snímok nemôžete skopírovať pomocou jazyka VBA, ale namiesto toho môžete nastaviť vlastnosť dizajnu snímok.