Posljednje ažurirano: lipanj 2020
Primjenjivo na: Office 2019 i starije. Samo Windows.
Evo pitanja čitatelja:
Kao dio svoje prezentacije tromjesečnog izvješća menadžmentu, često moram kopirati nekoliko slajdova općih informacija iz drugih prezentacija. Nije velika stvar, ali bilo bi značajno uštedjeti kad bismo mogli automatizirati ovu vježbu. Svaka VBA makro pomoć da se to postigne je cijenjena!
Kao što ste upravo spomenuli, možete automatizirati kopiranje i lijepljenje slajdova u PowerPointu pomoću Visual Basica za aplikacije. Ako trebate izraditi nekoliko prezentacija svaki mjesec, ova automatizacija za kopiranje/uvoz slajdova mogla bi uštedjeti veliko vrijeme!
PowerPoint VBA za dodavanje slajdova
Krenimo s ovom jednostavnom vježbom.
Prije svega, provjerite je li vaša kartica za razvoj omogućena i vidljiva. Evo kako to učiniti .
Pretpostavljam da ste već stvorili prezentaciju s omogućenom makronaredbom (vrsta datoteke je .pptm), da ste stavili u isti direktorij kao i izvorna prezentacija (koju ću nazvati izvornim.pptm). Evo kako stvoriti PowerPoint prezentaciju s VBA .
Prvo, napravimo sigurnosnu kopiju te prezentacije (jednostavno kopirajte i spremite).
Zatim idemo naprijed i umetnimo sljedeći makro u novi VBA modul u vašoj odredišnoj prezentaciji. Sve pojedinosti o tome kako to učiniti možete pronaći u našem PowerPoint VBA vodiču .
Evo VBA koda koji će vam trebati da biste automatski kopirali i zalijepili slajdove.
Nekoliko pretpostavki koje sam napravio:
- Vaša izvorna prezentacija nosi naziv source.pptm
- Zalijepit ćete slajdove 2-4 iz izvorne prezentacije
- Kopirane slajdove postavite na početni slajd 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
Očito, slobodno promijenite indeksiranje brojeva slajdova u kodu kako bi odgovarali vašim zahtjevima.
Možete ga natjerati da prođe kroz nekoliko prezentacija i umetnete određene slajdove iz svake u svoje izvješće upravljanja.
PowerPoint VBA za umnožavanje slajdova
Umjesto kopiranja slajdova u drugu prezentaciju, možda ćete htjeti klonirati jedan ili više slajdova u svojoj prezentaciji:
Sub CopySlides()
' Short snippet to duplicate the third slide in a presentation, change the index/es accrodingly
ActivePresentation.Slides(3).Duplicate
End Sub
To je bio samo nekoliko jednostavnih primjera PowerPoint automatizacije. Čitatelji koji traže konkretna pitanja, slobodno pošaljite upit putem stranice Kontakt.
Nadam se da pomaže 🙂
Sačuvajte oblikovanje prilikom kopiranja slajdova
Problem s prethodnim primjerom bio je u tome što izvorno oblikovanje teme prezentacije nije kopirano. Pretpostavimo da su 2 lista imala različit format, ovo bi se dogodilo:
Primjer 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
|

Ovo je prezentacija sa slajdom koji želimo kopirati:
Rezultat:
Kako biste prevladali ovaj problem, možete koristiti kod u nastavku:
![Slajdovi za kopiranje]()
![Proizlaziti]()
| |
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
|
Osim kopiranja slajda, gornji kod kopira dizajn. Da to želite učiniti ručno, kopirali biste slajdmaster u novu prezentaciju. Ne možete kopirati slajdmaster pomoću VBA, ali umjesto toga možete postaviti svojstvo dizajna slajdova.