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:
Antes de ejecutar el código
Esta es la presentación con la diapositiva que queremos copiar:
Diapositivas para copiar
Resultado:
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:
Antes de ejecutar el código
Esta es la presentación con la diapositiva que queremos copiar:
Diapositivas para copiar
Resultado:
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.

Su Calificación Nos Ayuda a Mejorar