Técnicamente, en PowerPoint puedes vincular un archivo de Excel a una presentación de PowerPoint. Sin embargo, eso no hará que el gráfico sea dinámico y, a veces, es difícil decir cuándo se actualizará el gráfico. Pero, ¿qué sucede si queremos aún más? ¿Qué sucede si queremos que el gráfico se actualice durante una presentación?
Imagina querer presentar una serie de diapositivas dinámicas en un entorno de Office, cada diapositiva mostrando los gráficos más recientes de un tablero de Excel actualizado. En otros casos, es posible que desees evitar cualquier enlace a archivos de Excel y simplemente tener una referencia dinámica a tu archivo o archivos de origen. Hoy exploraremos cómo crear gráficos dinámicos en PowerPoint usando VBA.
Quizás te puede interesar: Ventajas De PowerPoint Frente A Otras Herramientas De Presentación
Una descripción histórica de los gráficos en PowerPoint
Cuando comenzamos con PresentationPoint y procedimos a crear DataPoint, que se lanzó oficialmente en 2003, PowerPoint 1997, 2000 y 2003 usaban el motor Microsoft Graph para visualizar gráficos en tus diapositivas. Con versión de PowerPoint u Office 2007, se introdujo un nuevo motor de gráficos en PowerPoint. Se parecía exactamente al mejor motor de gráficos de Microsoft Excel.
¿Por qué no usar gráficos vinculados?
Antes de comenzar, queremos explicar que no necesitas usar el enfoque que se explica a continuación para simplemente vincular un gráfico de Excel a una presentación de PowerPoint. El propósito de este ejercicio es evitar la vinculación y hacerlo completamente flexible según tus preferencias cuando desees actualizar tus gráficos e incluso actualizar los archivos de Excel antes de hacerlo.
Creación de gráficos dinámicos en PowerPoint
A continuación se muestra un tutorial paso a paso sobre cómo configurar los gráficos dinámicos en PowerPoint y la macro:
Paso 1: Crea el PowerPoint y las formas
Primero, debemos crear una forma de PowerPoint que se usará como marcador de posición para marcar la ubicación y el tamaño de nuestro gráfico. Haz clic en la imagen de abajo para una referencia.
Paso 2: Crea un gráfico de Excel
A continuación, debemos crear y nombrar un gráfico de Excel. Esto se copiará y pegará como una imagen en nuestro PowerPoint para evitar la vinculación y asegurar que el formato sea idéntico a cómo se visualiza en tu archivo de Excel.
Paso 3: Crear la macro VBA de gráficos dinámicos en PowerPoint
Si no sabes cómo acceder a la pestaña Desarrollador, puedes proceder de manera similar a como lo haces en Excel. A continuación, crea un nuevo módulo VBA y copia el siguiente código VBA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
#If VBA7 Then
Public Declare PtrSafe Sub Sleep Lib «kernel32» (ByVal milliseconds As LongPtr) ‘MS Office 64 Bit #Else Public Declare Sub Sleep Lib «kernel32» (ByVal milliseconds As Long) ‘MS Office 32 Bit #End If
Function CopyChartFromExcelToPPT(excelFilePath As String, sheetName As String, chartName As String, dstSlide As Long, Optional shapeLeft As Long, Optional shapeTop As Long, Optional shapeWidth As Long, Optional shapeHeight As Long) As Shape On Error GoTo ErrorHandl ‘Handle Errors
‘Set Variables and Open Excel Dim eApp As Excel.Application, wb As Excel.Workbook, ppt As PowerPoint.Presentation, ws As Excel.Worksheet Set eApp = New Excel.Application eApp.Visible = False Set wb = eApp.Workbooks.Open(excelFilePath) Set ppt = ActivePresentation ‘Copy Chart in Excel wb.Sheets(sheetName).ChartObjects(chartName).Copy
‘Paste into first slide in active PowerPoint presentation ppt.Slides(dstSlide).Shapes.PasteSpecial ppPasteBitmap Set CopyChartFromExcelToPPT = ppt.Slides(dstSlide).Shapes(ppt.Slides(dstSlide).Shapes.Count) ‘Close and clean-up Excel wb.Close SaveChanges:=False eApp.Quit Set wb = Nothing: Set eApp = Nothing
‘Move the new shape if left/top provided If Not (IsMissing(shapeTop)) Then With CopyChartFromExcelToPPT .Left = shapeLeft .Top = shapeTop End With End If If Not (IsMissing(shapeWidth)) Then With CopyChartFromExcelToPPT .LockAspectRatio = False .Width = shapeWidth .Height = shapeHeight End With End If Exit Function ErrorHandl: ‘Make sure to close the workbook and Excel and return False On Error Resume Next If Not (eApp Is Nothing) Then wb.Close SaveChanges:=False eApp.Quit End If Set CopyChartFromExcelToPPT = Nothing End Function |
Déjame desglosar esto. Anteriormente, primero definimos la función VBA Sleep, ya que la usaremos como un mecanismo de demora entre actualizaciones. A continuación definimos la función CopyChartFromExcelToPPT que básicamente hace lo siguiente:
- Abre un archivo de Excel definido con excelFilePath.
- Copia el gráfico chartName de la hoja sheetName.
- Lo pega en ActivePresentation en la diapositiva dstSlide y la ubicación shapeTop y shapeLeft, con el tamaño de shapeWidth y shapeHeight
Como puedes ver, esta es una función genérica que puedes reutilizar para tu propio propósito, independientemente del ejemplo de uso que vayas a utilizar.
Paso 4: Actualiza automáticamente el gráfico
Ahora vamos a crear un escenario simple usando la función genérica para copiar un gráfico de Excel a PowerPoint:
- Paso 1: ejecuta en modo Presentación.
- Paso 2: cada segundo actualiza el gráfico de Excel y actualiza el sello de tiempo.
- Paso 3: sal del modo de presentación.
A continuación, el código VBA hace exactamente eso:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
Sub TestAutoUpdate()
Dim shp As Shape, shp1 As Shape, shpTxt As Shape Dim chartPlaceholder As Shape, timeShape As Shape, slideNumber As Long ‘Get placeholder shapes, hide ChartPlaceholder slideNumber = 1 Set chartPlaceholder = ActivePresentation.Slides(slideNumber).Shapes(«ChartPlaceholder»): chartPlaceholder.Visible = msoFalse Set timeShape = ActivePresentation.Slides(slideNumber).Shapes(«TimeStamp»)
‘Start the presentation! ActivePresentation.SlideShowSettings.Run
‘Update the Chart and set time stamp Set shp = CopyChartFromExcelToPPT(ActivePresentation.Path & «\Test.xlsx», «Sheet1», «Chart 1», slideNumber, chartPlaceholder.Left, chartPlaceholder.Top, chartPlaceholder.Width, chartPlaceholder.Height) timeShape.TextFrame.TextRange.Text = Format(Now(), «YYYY-MM-DD HH:MM») DoEvents Sleep 1000 For i = 0 To 3 ‘Update the Chart, delete old shape and set time stamp Set shp1 = CopyChartFromExcelToPPT(ActivePresentation.Path & «\Test.xlsx», «Sheet1», «Chart 1», slideNumber, chartPlaceholder.Left, chartPlaceholder.Top, chartPlaceholder.Width, chartPlaceholder.Height) shp.Delete: Set shp = shp1 timeShape.TextFrame.TextRange.Text = Format(Now(), «YYYY-MM-DD HH:MM») ‘Sleep for 1 second DoEvents Sleep 1000 Next i ‘End of presentation! ActivePresentation.SlideShowWindow.View.Exit ‘Delete the chart and make the ChartPlaceholder visible again shp.Delete chartPlaceholder.Visible = msoTrue End Sub |
Casos de uso de gráficos dinámicos en PowerPoint
Para nosotros, una forma de animar gráficos de Excel en PowerPoint presenta una nueva paleta de opciones para ampliar aún más los límites de lo que podemos hacer con PowerPoint. A continuación, una breve lista de ideas que pueden ayudarte a imaginar lo útil que puede ser:
- Crea una presentación dinámica de Office con gráficos de actualización automática de varios archivos de Excel.
- Crea un botón para actualizar manualmente uno o todos los gráficos en tu plataforma de PowerPoint.
- Crea una manera fácil de vincular tus gráficos en PowerPoint a archivos de Excel que podrían moverse (por ejemplo, vincular a archivos de Excel en el mismo directorio).
Elige entre tablas y gráficos dinámicos en PowerPoint
Todavía puedes usar el nuevo objeto de gráficos para mostrar gráficos en tiempo real en tus diapositivas. Pero verás una hoja de datos parpadeando cada vez que DataPoint abra el contenido de los datos del gráfico. Para presentaciones en línea, o en otras palabras, cuando ejecutas una presentación de diapositivas de PowerPoint en una computadora dedicada o en una pantalla de televisión para tu audiencia, y quieres evitar ver esa hoja de trabajo, entonces tienes que usar los gráficos ‘más antiguos’.
Tal vez quieras saber: Cómo Usar VBA En PowerPoint: Una Guía Para Principiantes
Cómo insertar un gráfico en tu diapositiva
Con la última versión de DataPoint, simplemente haz clic para abrir el menú Insertar de tu PowerPoint. Al final de los botones originales, encontrarás un nuevo grupo de Puntos de datos con un botón Gráfico. Cuando estés en una diapositiva, simplemente haz clic en el botón Gráfico e insertará un nuevo objeto de gráfico predeterminado para ti. Esto se comporta como la nueva opción Insertar > Gráfico.
Cuando hayas configurado una conexión de datos a una fuente de datos de tu elección y hayas seleccionado este objeto de gráfico, haz clic en Punto de datos y luego en el botón Gráfico para asignar los datos de la conexión de datos a este cuadro/gráfico.
Este objeto de gráfico se puede usar perfectamente en tu presentación de diapositivas para mostrar información en tiempo real como un gráfico de barras o circular. Pero, la mayor ventaja, no verás una hoja de datos con tu información parpadeando en tu pantalla.
Cuando editas el gráfico
Cada vez que hagas clic para editar un objeto de gráfico, PowerPoint te dirá lo siguiennte: ‘Para editar tu gráfico usando las funciones más recientes de PowerPoint, deberás convertirlo al formato más nuevo‘. Elige Editar existente aquí para seguir usando el objeto de Microsoft Graph.
PowerPoint te preguntará esto cada vez. Si encuentras esto molesto y quieres seguir usando gráficos, entonces tal vez deshabilites esta pregunta. Para hacerlo, ve al registro y agrega una nueva clave (DWORD) llamada MSGraphEnable a esta ruta a continuación, y establece el valor en 1.
\HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\Charting
El valor 16,0 aquí representa la versión de PowerPoint 2016. Usa 15,0 para PowerPoint 2013 y 14,0 para PowerPoint 2010.
Cómo crear una presentación dinámica
Si tienes una presentación con algunos gráficos e informes, nunca sabes con qué frecuencia necesitarás actualizarla. Por ejemplo, crea un informe de rendimiento trimestral y recibe datos nuevos cada hora. En este caso, en lugar de tablas y gráficos de PowerPoint, es mejor incrustar un objeto de Excel. La información se actualiza automáticamente después de las actualizaciones en la tabla de Excel.
Para crear una diapositiva en la presentación de PowerPoint con datos actualizados automáticamente, haz lo siguiente:
Paso 1: selecciona un gráfico o una tabla en Excel que desees agregar a la presentación y realiza una de las siguientes acciones:
- Haz clic en Ctrl+C.
- En la pestaña Inicio, en el grupo Portapapeles, haz clic en el botón Copiar.
- Haz clic derecho en el objeto seleccionado y luego elige Copiar en el menú emergente.
Paso 2: abre la diapositiva de la presentación, donde deseas insertar el objeto de Excel y luego, en la pestaña Inicio, en el grupo Portapapeles, elige en la lista desplegable, la opción Pegar.
- 1. Si intentas pegar un gráfico.
En la lista Opciones de pegado, elige:
- Usar tema de destino y datos de enlace.
- Mantener el formato de origen y los datos de enlace.
Usar tema de destino adoptará los colores, las fuentes y los efectos del tema de la presentación de destino en la que estás pegando. Se cambiarán los colores de origen, las fuentes y los efectos. Conservar el formato de origen mantendrá los colores del tema, las fuentes y los efectos de la presentación desde la que estás copiando. Todos los colores, fuentes y efectos serán los mismos que en el libro de trabajo de origen.
Link Data es lo que usarás si deseas que la información en el gráfico o la hoja de cálculo se actualice automáticamente cuando se actualicen los datos de origen. Se crea un enlace al original, y las modificaciones en el origen harán los cambios en el documento de destino.
¡Precaución! Debido a que este método crea un vínculo a una hoja de cálculo de Excel específica, si mueves o eliminas el archivo de origen, no podrás actualizar el gráfico.
2.2. Si deseas insertar una tabla, haz clic en Pegado especial:
Nota: cualquier otra opción de pegado no crea un vínculo al archivo de origen, por lo que cualquier cambio en la tabla de Excel no actualiza la tabla en PowerPoint.
En el cuadro de diálogo Pegado especial, marca la casilla de verificación Pegar enlace y haz clic en Aceptar:
Ahora, si cambias cualquier cosa en el gráfico o en la tabla, verás los cambios en la presentación de PowerPoint:
Otras opciones para pegar un gráfico de Excel:
- Usar tema de destino e incrustar libro de trabajo.
- Mantener el formato de origen e incrustar el libro de trabajo.
Embed Workbook creará una copia de los datos y la incrustará en el documento de destino. Los cambios futuros en la fuente no se reflejarán. Puedes cambiar manualmente el gráfico haciendo doble clic en él y realizando cambios en la mini hoja de cálculo que se abre dentro del documento de destino.
Los cambios que realices en el documento de destino tampoco afectarán a los datos de origen. Incrustar el gráfico y tus datos de origen es útil para compartir documentos entre la computadora del espectador y la tuya propia.
Sin embargo, puedes crear archivos muy grandes. El objeto del archivo de origen se mostrará como una imagen. Cualquier cambio en la fuente no cambia esta imagen. Luego puedes editar la imagen como cualquier otra, pero no podrás cambiar ni abrir los datos de origen ni cambiar el gráfico.
Echa un vistazo a: Cómo Usar El Puntero Láser En Powerpoint (Verde, Rojo Y Azul)
Pensamientos finales
Listo, ya sabes trabajar con gráficos dinámicos en PowerPoint. Estamos seguros de que la nueva forma de gráficos que se introdujo en PowerPoint y que Microsoft desarrolló para las versiones más recientes de PowerPoint es mucho mejor para todos nosotros, en comparación con el objeto de Microsoft Graph más antiguo. Pero, como hemos aprendido, la actualización de la hoja de datos sin flashear la hoja de datos es técnicamente imposible en este momento y causa corrupciones. Esperamos que este tutorial te haya sido útil y que nos visites nuevamente.
Me llamo Javier Chirinos y soy un apasionado de la tecnología. Desde que tengo uso de razón me aficioné a los ordenadores y los videojuegos y esa afición terminó en un trabajo.
Llevo más de 15 años publicando sobre tecnología y gadgets en Internet, especialmente en mundobytes.com
También soy experto en comunicación y marketing online y tengo conocimientos en desarrollo en WordPress.