VBA PowerPoint - Crear presentación de PowerPoint desde Excel con VBA

Tabla de contenido:

Anonim

Tutorial de Excel VBA PowerPoint

VBA es una herramienta poderosa que se puede usar dentro de cualquier área de las herramientas integradas de Microsoft. Al igual que MS Excel, Powerpoint también tiene una disposición para crear una macro y automatizar la presentación. La automatización puede ser de cualquier forma. Ha visto presentaciones donde las diapositivas son tan grandes y detalladas, que a veces terminan teniendo más de 50 diapositivas solo para cubrir un tema de capacitación o un informe. Entonces, en lugar de agregar los gráficos en PowerPoint desde Excel, podemos crear un código que copie directamente los gráficos de Excel y los pegue en la diapositiva de PowerPoint.

¿Cómo crear una presentación de PowerPoint desde Excel VBA?

A continuación se muestra el ejemplo para crear una presentación de PowerPoint con el código VBA en Excel:

Puede descargar esta plantilla de Excel de VBA PowerPoint aquí - Plantilla de Excel de VBA PowerPoint

Ejemplo de PowerPoint de VBA

Creemos un gráfico primero en Excel. Para eso, necesitamos datos. A continuación tenemos algunos datos de ventas de 8 vendedores.

Ahora creemos un gráfico de columnas o gráfico con la ayuda de los datos anteriores. Veremos a continuación, ahora tenemos un gráfico de columnas con el título Cantidad vendida y todas las etiquetas insertadas.

Ahora nuestra tarea es obtener este gráfico en la diapositiva de PowerPoint como se muestra aquí con el título del gráfico como el título de la diapositiva de PowerPoint. Para esto, necesitamos habilitar el PowerPoint en VBA.

Siga los pasos a continuación:

Paso 1: vaya al menú de la herramienta VBA como se muestra a continuación y seleccione la opción Referencias … como se muestra a continuación.

Paso 2: Una vez que lo hagamos, obtendremos una ventana del proyecto de referencias VBA. De esa lista seleccione MS PowerPoint 15.0 Object Library como se muestra a continuación. Esto activará todos los comandos relacionados con MS PowerPoint en VBA. Sin esto, no podemos ejecutar VBA en PowerPoint. Marque la casilla de la Biblioteca mencionada y haga clic en Aceptar .

Paso 3: Ahora para escribir el código para VBA PowerPoint, necesitamos un módulo. Para obtener un nuevo módulo, vaya al menú Insertar y seleccione una opción de Módulo como se muestra a continuación.

Paso 4: en ese módulo, escriba la subcategoría de VBA PowerPoint o en cualquier otro nombre según su necesidad, como se muestra a continuación.

Código:

 Sub VBA_Presentation () End Sub 

Paso 5: Ahora, para crear una presentación con la ayuda de Chart en Excel, necesitamos pocas variables. Consideremos 5 variables como:

  1. Aplicación para la aplicación de PowerPoint.
  2. PPT para presentación de PowerPoint,
  3. PPTSlide para PowerPoint Slide,
  4. PPTShapes para PowerPoints,
  5. PPTCharts para Excel Chart Object.

Código:

 Sub VBA_Presentation () Dim PAplication As PowerPoint.Application Dim PPT As PowerPoint.Presentation Dim PPTSlide As PowerPoint.Slide Dim PPTShapes As PowerPoint.Shape Dim PPTCharts As Excel.ChartObject End Sub 

Paso 6: Ahora use el comando Establecer para agregar una nueva aplicación de PowerPoint como se muestra a continuación.

Código:

 Sub VBA_Presentation () Dim PAplication As PowerPoint.Application Dim PPT As PowerPoint.Presentation Dim PPTSlide As PowerPoint.Slide Dim PPTShapes As PowerPoint.Shape Dim PPTCharts As Excel.ChartObject Set PAplication = New PowerPoint.Application End Sub 

Paso 7: en una línea de código, haga visible la aplicación de PowerPoint y use msoCTrue para evaluar misteriosamente la forma incorrecta. Y después de eso, se utilizará la misma aplicación que Maximizada en PowerPoint para obtener la vista completa.

Código:

 Sub VBA_Presentation () Dim PAplication As PowerPoint.Application Dim PPT As PowerPoint.Presentation Dim PPTSlide As PowerPoint.Slide Dim PPTShapes As PowerPoint.Shape Dim PPTCharts As Excel.ChartObject Set PAplication = New PowerPoint.Application PAplication.Visible = msoCTrue PAplication.WindowState ppWindowMaximized End Sub 

Paso 8: Ahora configure el PPT, que es nuestra presentación para agregar en la aplicación MS PowerPoint,

Código:

 Sub VBA_Presentation () Dim PAplication As PowerPoint.Application Dim PPT As PowerPoint.Presentation Dim PPTSlide As PowerPoint.Slide Dim PPTShapes As PowerPoint.Shape Dim PPTCharts As Excel.ChartObject Set PAplication = New PowerPoint.Application PAplication.Visible = msoCTrue PAplication.WindowState ppWindowMaximized Set PPT = PAplication.Presentations.Add End Sub 

Paso 9: Ahora usaremos una combinación de For-Next y If-Else loop. Comenzando con For-Next Loop.

Código:

 Sub VBA_Presentation () Dim PAplication As PowerPoint.Application Dim PPT As PowerPoint.Presentation Dim PPTSlide As PowerPoint.Slide Dim PPTShapes As PowerPoint.Shape Dim PPTCharts As Excel.ChartObject Set PAplication = New PowerPoint.Application PAplication.Visible = msoCTrue PAplication.WindowState ppWindowMaximized Set PPT = PAplication.Presentations.Add For Next End Sub 

Paso 10: en el bucle For de PPTCharts, primero los gráficos activos en Excel.

Código:

 Sub VBA_Presentation () Dim PAplication As PowerPoint.Application Dim PPT As PowerPoint.Presentation Dim PPTSlide As PowerPoint.Slide Dim PPTShapes As PowerPoint.Shape Dim PPTCharts As Excel.ChartObject Set PAplication = New PowerPoint.Application PAplication.Visible = msoCTrue PAplication.WindowState ppWindowMaximized Set PPT = PAplication.Presentations.Add For Each PPTCharts In ActiveSheet.ChartObjects Next PPTCharts End Sub 

Paso 11: A continuación se muestra el código para pegar el gráfico de Excel a la diapositiva de PowerPoint. Use el código para agregar una diapositiva en la aplicación PA definida agregando una diapositiva +1 cada vez que ejecutemos el código.

Código:

 Sub VBA_Presentation () Dim PAplication As PowerPoint.Application Dim PPT As PowerPoint.Presentation Dim PPTSlide As PowerPoint.Slide Dim PPTShapes As PowerPoint.Shape Dim PPTCharts As Excel.ChartObject Set PAplication = New PowerPoint.Application PAplication.Visible = msoCTrue PAplication.WindowState ppWindowMaximized Set PPT = PAplication.Presentations.Add For Each PPTCharts In ActiveSheet.ChartObjects PAplication.ActivePresentation.Slides.Add PAplication.ActivePresentation.Slides.Count + 1, ppLayoutText Next PPTCharts End Sub 

Paso 12: Ahora, en la continuación de la siguiente línea de código, use el siguiente conjunto de código para establecer una vista de ventana activa. Esto se usará para deslizar después de que Chart se pegue en la presentación de PowerPoint.

Código:

 Sub VBA_Presentation () Dim PAplication As PowerPoint.Application Dim PPT As PowerPoint.Presentation Dim PPTSlide As PowerPoint.Slide Dim PPTShapes As PowerPoint.Shape Dim PPTCharts As Excel.ChartObject Set PAplication = New PowerPoint.Application PAplication.Visible = msoCTrue PAplication.WindowState ppWindowMaximized Set PPT = PAplication.Presentations.Add para cada PPTCharts en ActiveSheet.ChartObjects PAplication.ActivePresentation.Slides.Add PAplication.ActivePresentation.Slides.Count + 1, ppLayoutText PAplication.ActiveWindow.View.plication.litets. = PAplication.ActivePresentation.Slides (PAplication.ActivePresentation.Slides.Count) Siguiente PPTCharts End Sub 

Paso 13: Una vez hecho, seleccione la variable PPTChart que definimos anteriormente. Después de eso, copie el gráfico activo seleccionado en el área del gráfico donde se colocará. Y use el comando Pegado especial para pegar el gráfico con imágenes.

Código:

 Sub VBA_Presentation () Dim PAplication As PowerPoint.Application Dim PPT As PowerPoint.Presentation Dim PPTSlide As PowerPoint.Slide Dim PPTShapes As PowerPoint.Shape Dim PPTCharts As Excel.ChartObject Set PAplication = New PowerPoint.Application PAplication.Visible = msoCTrue PAplication.WindowState ppWindowMaximized Set PPT = PAplication.Presentations.Add para cada PPTCharts en ActiveSheet.ChartObjects PAplication.ActivePresentation.Slides.Add PAplication.ActivePresentation.Slides.Count + 1, ppLayoutText PAplication.ActiveWindow.View.plication.litets. = PAplication.ActivePresentation.Slides (PAplication.ActivePresentation.Slides.Count) PPTCharts.Seleccione ActiveChart.ChartArea.Copy PPTSlide.Shapes.PasteSpecial (DataType: = ppPasteMetafilePicture). Seleccione Siguiente PPTCharts End Sub 

Paso 14: Ahora seleccione la forma del Gráfico que está en la primera posición como rango de texto. Y lleve el mismo título que es " Cantidad vendida " en la Presentación de PowerPoint.

Código:

 Sub VBA_Presentation () Dim PAplication As PowerPoint.Application Dim PPT As PowerPoint.Presentation Dim PPTSlide As PowerPoint.Slide Dim PPTShapes As PowerPoint.Shape Dim PPTCharts As Excel.ChartObject Set PAplication = New PowerPoint.Application PAplication.Visible = msoCTrue PAplication.WindowState ppWindowMaximized Set PPT = PAplication.Presentations.Add para cada PPTCharts en ActiveSheet.ChartObjects PAplication.ActivePresentation.Slides.Add PAplication.ActivePresentation.Slides.Count + 1, ppLayoutText PAplication.ActiveWindow.View.plication.litets. = PAplication.ActivePresentation.Slides (PAplication.ActivePresentation.Slides.Count) PPTCharts.Select ActiveChart.ChartArea.Copy PPTSlide.Shapes.PasteSpecial (DataType: = ppPasteMetafilePicture) .Select PPTSlide.Shapes (1) .Text. .Chart.ChartTitle.Text Siguiente PPTCharts End Sub 

Esto completa el código para PowerPoint de VBA.

Paso 15: Ahora compile el código paso a paso para saber si alguna línea de código tiene un error presionando la tecla de función F8. Y después de eso, ejecute el código haciendo clic en el botón Reproducir que se encuentra debajo de la barra de menú como se muestra a continuación.

Obtendremos el gráfico publicado en el archivo de PowerPoint en la primera diapositiva, como se muestra a continuación.

Como el código es grande, el código completo se puede ver en el cuadro de texto a continuación.

Pros de Excel VBA PowerPoint

  • Usar VBA en Powerpoint hace que sea fácil de manejar si un archivo ppt tiene tantas diapositivas con gran contenido.
  • VBA con Powerpoint le da un toque de automatización incluso con funciones limitadas disponibles.

Contras de Excel VBA PowerPoint

  • Necesitamos seleccionar la Biblioteca de objetos de Microsoft PowerPoint 15.0 de la opción Referencia ubicada en la opción del menú Herramienta, que necesitamos al comienzo del ejemplo-1, cada vez que ejecutamos el código para PowerPoint.

Cosas para recordar

  • Guarde el archivo en el formato de presentación Macro-Enable después de escribir el código. Esto nos ayudará a evitar perder el código y usarlo varias veces en el futuro.
  • La función de recodificación no funcionará aquí, ya que necesitamos pasar de Excel a PowerPoint cambiando la interfaz entre las páginas.
  • Siempre compile el código antes de ejecutarlo. Esto lo ayudará a encontrar el error en el código. Esto es bastante útil cuando escribimos grandes líneas de código.
  • Para ejecutar e implementar el código, necesitamos abrir la hoja de Excel con el gráfico que queremos pegar en la diapositiva de PowerPoint.
  • Podemos alinear el gráfico en PowerPoint según nuestras necesidades.

Artículos recomendados

Esta es una guía de PowerPoint de VBA. Aquí discutimos cómo crear presentaciones de PowerPoint desde Excel usando el código VBA junto con un ejemplo práctico y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. Columna de eliminación de VBA
  2. Barra de estado en Excel
  3. VBA Eliminar duplicados
  4. Crear hoja de cálculo en Excel