x

Cómo copiar automáticamente desde Excel a PowerPoint usando una macro VBA

Por jaime avelar
Hemera Technologies/Photos.com/Getty Images

Si alguna vez has querido acelerar la transferencia de datos desde un libro de trabajo de Microsoft Excel a tu presentación en Microsoft PowerPoint, usar una macro y Visual Basic para Aplicaciones (VBA, por sus siglas en inglés) es la solución. VBA es un lenguaje de programación de computadora usado por las aplicaciones de Microsoft Office para automatizar procesos como copiar datos desde Excel. Una macro te permite guardar un conjunto de instrucciones que puedes ejecutar una y otra vez con un clic del ratón.

Paso 1

Ejecuta Excel, escribe "Alan" en A1, "Daniel" en A2, “Kitzia” en A3, "Oscar" en A4 y “Yarexli” en A5. Pulsa "Ctrl" y "S" para guardar el libro de trabajo en “C:\” as “ExcelFile.xlsx”. Cierra Excel.

Paso 2

Ejecuta PowerPoint, haz clic en la pestaña "Desarrollador" y haz clic en "Macros" para ejecutar la ventana de diálogo de macros. Escribe “copyFromExcel” debajo del "Nombre de macro" y haz clic en el botón "Crear". Haz clic en el menú "Herramientas" y pulsa "Preferencias" para ejecutar la ventana de diálogo de "Referencias". Desplázate hacia abajo y marca la caja “Biblioteca de objetos de Microsoft Excel ” y haz clic en "Aceptar".

Paso 3

Copia y pega lo siguiente para crear las variables que usarás para copiar los datos desde Excel:

Dim sourceXL As Excel.Application Dim sourceBook As Excel.Workbook Dim sourceSheet As Excel.Worksheet Dim dataReadArray(10) As String Dim myPress As Presentation Dim newSlide As Slide

Paso 4

Ajusta los valores de las variables de objeto:

Set sourceXL = Excel.Application Set sourceBook = sourceXL.Workbooks.Open("G:\ExcelFile.xlsx") Set sourceSheet = sourceBook.Sheets(1) Set myPres = ActivePresentation Set newSlide = myPres.Slides.Add(Index:=myPres.Slides.Count + 1, Layout:=ppLayoutText)

Paso 5

Lee los datos en el archivo Excel y almacénalos en un vector de Cadena:

sourceSheet.Range("A1").Select dataReadArray(0) = sourceSheet.Range("A1").Value sourceSheet.Range("A2").Select dataReadArray(1) = sourceSheet.Range("A2").Value sourceSheet.Range("A3").Select dataReadArray(2) = sourceSheet.Range("A3").Value sourceSheet.Range("A4").Select dataReadArray(3) = sourceSheet.Range("A4").Value sourceSheet.Range("A5").Select dataReadArray(4) = sourceSheet.Range("A5").Value

Paso 6

Añade los datos desde el vector Cadena a la nueva diapositiva en tu presentación actual:

newSlide.Shapes(1).TextFrame.TextRange = "Data copied from Excel" newSlide.Shapes(2).TextFrame.TextRange = dataReadArray(0) & vbNewLine & _ dataReadArray(1) & vbNewLine & _ dataReadArray(2) & vbNewLine & _ dataReadArray(3) & vbNewLine & _ dataReadArray(4) & vbNewLine

Paso 7

Cierra el libro de trabajo:

sourceBook.Close

Paso 8

Cambia a la ventana de PowerPoint y haz clic en "Macros". Haz clic en "Ejecutar" para ejecutar la macro “copyFromExcel” y añade una nueva diapositiva con datos copiados desde el archivo Excel creado en el paso 1.