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

Por jaime avelar

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 <número de versión>” 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.