Paskutinį kartą atnaujinta: 2020 m. birželio mėn
Taikoma: „Office 2019“ ir senesnėms versijoms. Tik Windows.
Štai skaitytojo klausimas:
Kaip dalį savo ketvirčio ataskaitos pristatymo vadovybei, man dažnai reikia nukopijuoti kelias bendrosios informacijos skaidres iš kitų pristatymų. Tai nėra didelė problema, tačiau būtų galima sutaupyti, jei būtų galima automatizuoti šį pratimą. Bet kokia VBA makrokomanda padeda tai pasiekti yra vertinama!
Kaip ką tik minėjote, galite automatizuoti skaidrių kopijavimą ir įklijavimą „PowerPoint“ naudodami „Visual Basic for Applications“. Jei kas mėnesį reikia sukurti keletą pristatymų, šis skaidrių kopijavimo / importavimo automatizavimas gali sutaupyti daug laiko!
PowerPoint VBA skaidrėms pridėti
Pradėkime nuo šio paprasto pratimo.
Pirmiausia įsitikinkite, kad kūrimo skirtukas įjungtas ir matomas. Štai kaip tai padaryti .
Darysiu prielaidą, kad jau sukūrėte pristatymą su makrokomandomis (failo tipas yra .pptm), kurį įdėjote į tą patį katalogą nei jūsų šaltinio pristatymas (kurį vadinsiu source.pptm). Štai kaip sukurti „PowerPoint“ pristatymą naudojant VBA .
Pirmiausia padarykime atsarginę to pristatymo kopiją (paprasta nukopijuokite ir išsaugokite).
Tada eikime į priekį ir įterpkite šią makrokomandą į naują VBA modulį paskirties pristatyme. Visą informaciją apie tai, kaip tai padaryti, rasite mūsų PowerPoint VBA mokymo programoje .
Štai VBA kodas, kurio jums reikės norint automatiškai nukopijuoti ir įklijuoti skaidres.
Pora mano padarytų prielaidų:
- Jūsų šaltinio pristatymas pavadintas source.pptm
- Įklijuosite 2–4 skaidres iš šaltinio pristatymo
- Nukopijuotas skaidres pradėsite nuo 5 skaidrės.
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
Žinoma, nedvejodami pakeiskite skaidrės numerio indeksavimą kode, kad jie atitiktų jūsų poreikius.
Galite priversti jį peržiūrėti keletą pristatymų ir į savo valdymo ataskaitą įterpti konkrečias skaidres iš kiekvienos.
„PowerPoint VBA“, skirta skaidrėms kopijuoti
Užuot kopijavę skaidres į kitą pristatymą, galbūt norėsite klonuoti vieną ar kelias pristatymo skaidres:
Sub CopySlides()
' Short snippet to duplicate the third slide in a presentation, change the index/es accrodingly
ActivePresentation.Slides(3).Duplicate
End Sub
Tai buvo tik keletas paprastų „PowerPoint“ automatizavimo pavyzdžių. Skaitytojai, ieškantys konkrečių klausimų, nedvejodami siųskite užklausą kontaktų puslapyje.
Tikimės, kad tai padės 🙂
Išsaugokite formatavimą kopijuodami skaidres
Ankstesnio pavyzdžio problema buvo ta, kad originalus pristatymų temos formatavimas nebuvo nukopijuotas. Tarkime, kad 2 lapai turėjo skirtingą formatavimą, būtų nutikę taip:
1 pavyzdys
|
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
|
Tai pristatymas su skaidre, kurią norime nukopijuoti:
Rezultatas:
Norėdami išspręsti šią problemą, galite naudoti toliau pateiktą kodą:
|
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
|
Be skaidrės kopijavimo, aukščiau esantis kodas kopijuoja dizainą. Jei norite tai padaryti rankiniu būdu, nukopijuokite skaidrių tvarkyklę į naują pristatymą. Negalite kopijuoti skaidrių šablono naudodami VBA, bet galite nustatyti skaidrių dizaino ypatybes.