Copie diapositivas de una presentación a otra (VBA para PowerPoint)
En este artículo, explicaré cómo puede usar VBA para copiar diapositivas de una presentación de PowerPoint a otra.
Ejemplo 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
Esta es la presentación con la macro antes de que se ejecute el script:

Esta es la presentación con la diapositiva que queremos copiar:

Resultado:

Conservar el formato al copiar diapositivas
El problema del ejemplo anterior era que no se copiaba el formato del tema de las presentaciones originales. Supongamos que las 2 hojas tuvieran un diseño diferente, habría sucedido lo siguiente:

Esta es la presentación con la diapositiva que queremos copiar:

Resultado:

Para resolver este problema, puede utilizar el siguiente código:
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
Además de copiar la diapositiva, el código anterior copia el diseño. Si desea hacer esto manualmente, copie el patrón de diapositivas a la nueva presentación. No puede copiar el patrón de diapositivas usando VBA, en su lugar puede establecer la propiedad de diseño de las diapositivas.
Descargar archivos de muestra.



