Última actualització: juny de 2020
Aplicable a: Office 2019 i anteriors. Només Windows.
Aquí hi ha una pregunta d'un lector:
Com a part de la presentació de l'informe trimestral a la direcció, sovint necessito copiar diverses diapositives d'informació general d'altres presentacions. No és gran cosa, però seria un estalvi important poder automatitzar aquest exercici. Qualsevol macro VBA ajuda a aconseguir-ho s'agraeix!
Com acabeu d'esmentar, podeu automatitzar les diapositives per copiar i enganxar a PowerPoint mitjançant Visual Basic per a aplicacions. Si necessiteu crear diverses presentacions cada mes, aquesta automatització de còpia/importació de diapositives podria esdevenir un gran estalvi de temps!
PowerPoint VBA per afegir diapositives
Comencem amb aquest senzill exercici.
En primer lloc, assegureu-vos que la vostra pestanya de desenvolupament estigui activada i visible. Aquí teniu com fer-ho .
Suposo que ja heu creat una presentació amb macro habilitat (el tipus de fitxer és .pptm), que heu col·locat al mateix directori que la vostra presentació d'origen (que em referiré com a source.pptm). A continuació s'explica com crear una presentació de PowerPoint amb VBA .
En primer lloc, fem una còpia de seguretat d'aquesta presentació (simple còpia i desa).
A continuació, anem a inserir la següent macro en un mòdul VBA nou a la presentació de destinació. Podeu trobar tots els detalls sobre com fer-ho al nostre tutorial de PowerPoint VBA .
Aquí teniu el codi VBA que necessitareu per copiar i enganxar automàticament les diapositives.
Un parell de suposicions que vaig fer:
- La vostra presentació d'origen s'anomena source.pptm
- Enganxareu les diapositives 2-4 de la vostra presentació d'origen
- Col·locareu les diapositives copiades a partir de la diapositiva 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
Òbviament, no dubteu a canviar la indexació del número de diapositives al codi perquè s'ajustin als vostres requisits.
Podeu fer-ho passar per diverses presentacions i inserir diapositives específiques de cadascuna al vostre informe de gestió.
PowerPoint VBA per duplicar diapositives
En lloc de copiar diapositives a una altra presentació, potser voldreu clonar una o més diapositives a la presentació:
Sub CopySlides()
' Short snippet to duplicate the third slide in a presentation, change the index/es accrodingly
ActivePresentation.Slides(3).Duplicate
End Sub
Aquests eren només un parell d'exemples senzills d'automatització de PowerPoint. Els lectors que busquen preguntes específiques, no dubteu a enviar una consulta a través de la pàgina de contacte.
Espero que us ajudi 🙂
Conserva el format en copiar diapositives
El problema de l'exemple anterior va ser que el format del tema de les presentacions originals no es va copiar. Suposem que els 2 fulls tenien un format diferent, això és el que hauria passat:
Exemple 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
|

Aquesta és la presentació amb la diapositiva que volem copiar:
Resultat:
Per solucionar aquest problema podeu utilitzar el codi següent:
![Diapositives per copiar]()
![Resultat]()
| |
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
|
A part de copiar la diapositiva, el codi anterior copia el disseny. Si volguéssiu fer-ho manualment, copiaríeu el slidemaster a la nova presentació. No podeu copiar el slidemaster mitjançant VBA, sinó que podeu definir la propietat de disseny de les diapositives.