Ultima actualizare: iunie 2020
Aplicabil pentru: Office 2019 și mai vechi. Doar Windows.
Iată o întrebare a unui cititor:
Ca parte a prezentării raportului meu trimestrial către conducere, adesea trebuie să copiez mai multe diapozitive cu informații generale din alte prezentări. Nu e mare lucru, dar ar fi un economisitor semnificativ să poți automatiza acest exercițiu. Orice macro VBA ajută la realizarea acestui lucru este apreciat!
După cum tocmai ați menționat, puteți automatiza diapozitivele, copiați și lipiți în PowerPoint folosind Visual Basic pentru aplicații. Dacă aveți nevoie să creați mai multe prezentări în fiecare lună, această automatizare pentru copierea/importarea diapozitivelor ar putea deveni o economie de timp uriașă!
PowerPoint VBA pentru adăugarea de diapozitive
Să mergem cu acest exercițiu simplu.
În primul rând, asigurați-vă că fila de dezvoltare este activată și vizibilă. Iată cum să faci asta .
Voi presupune că ați creat deja o prezentare activată Macro (tipul fișierului este .pptm), pe care ați plasat-o în același director ca prezentarea sursă (la care mă voi referi ca sursă.pptm). Iată cum să creați o prezentare PowerPoint cu VBA .
În primul rând, să facem o copie de rezervă a prezentării respective (o simplă copiere și salvare).
Apoi, să mergem mai departe și să inserăm următoarea macrocomandă într-un nou modul VBA în prezentarea destinației. Toate detaliile despre cum să faceți acest lucru pot fi găsite în tutorialul nostru PowerPoint VBA .
Iată codul VBA de care veți avea nevoie pentru a copia și lipi automat diapozitivele.
Câteva presupuneri pe care le-am făcut:
- Prezentarea sursă se numește source.pptm
- Veți lipi diapozitivele 2-4 din prezentarea sursă
- Veți plasa diapozitivele copiate începând cu diapozitivul 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
Evident, nu ezitați să modificați indexarea numărului de diapozitive din cod, astfel încât acestea să se potrivească cerințelor dumneavoastră.
Puteți să faceți o buclă prin mai multe prezentări și să inserați diapozitive specifice din fiecare în raportul dvs. de management.
PowerPoint VBA pentru duplicarea diapozitivelor
În loc să copiați diapozitive într-o altă prezentare, este posibil să doriți să clonați unul sau mai multe diapozitive din prezentarea dvs.:
Sub CopySlides()
' Short snippet to duplicate the third slide in a presentation, change the index/es accrodingly
ActivePresentation.Slides(3).Duplicate
End Sub
Acestea au fost doar câteva exemple simple de automatizare PowerPoint. Cititorii care caută întrebări specifice, nu ezitați să trimiteți o întrebare prin pagina Contact.
Sper să vă ajute 🙂
Păstrați formatarea la copierea diapozitivelor
Problema cu exemplul anterior a fost că formatarea temei prezentărilor originale nu a fost copiată. Să presupunem că cele 2 foi au format diferit, iată ce s-ar fi întâmplat:
Exemplul 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
|

Aceasta este prezentarea cu slide-ul pe care vrem să-l copiam:
Rezultat:
Pentru a depăși această problemă puteți folosi codul de mai jos:


| |
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
|
Pe lângă copierea slide-ului, codul de mai sus copiază designul. Dacă doriți să faceți acest lucru manual, ați copia slidemaster-ul în noua prezentare. Nu puteți copia slidemaster-ul folosind VBA, dar puteți seta proprietatea de proiectare a slide-urilor.