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.