La idea del post de hoy es comprobar cómo podemos rellenar, con el contenido de nuestras celdas de Excel, algunos objetos de una presentación de PowerPoint.
Primero tenemos que tener una presentación ya generada, con diferentes objetos ya insertados.
Veamos un ejemplo:
En mi ejemplo dispongo de:
- un objeto Título
- un cuadro de texto (CuadroTexto 1)
- una autoforma (Elipse 1)
- un gráfico...
Es fundamental, para facilitar la labor, tener identificados los objetos sobre los que vamos a trabajar (volcar la información desde Excel).
Puedes mostrar el panel de selección para este fin.
En nuestra hoja de cálculo, dentro de un libro de trabajo, tenemos la información a trasladar:
Es importante que sepas que, con lo que describiremos a continuación, no se traspasan los formatos dados en Excel... por ejemplo, si te fijas en la celda A5, en realidad, el valor de la celda es 1234!!, y no lo que mediante un formato personalizado se visualiza!!.
Esto vale para cualquier tipo de formato!!.
Añadimos el siguiente código en un módulo estándar de nuestro proyecto de VB:
Estamos listos... Ya podemos ejecutar nuestra macro.
Podremos ver como se van produciendo los cambios hasta llegar al resultado final:
Primero tenemos que tener una presentación ya generada, con diferentes objetos ya insertados.
Veamos un ejemplo:
En mi ejemplo dispongo de:
- un objeto Título
- un cuadro de texto (CuadroTexto 1)
- una autoforma (Elipse 1)
- un gráfico...
Es fundamental, para facilitar la labor, tener identificados los objetos sobre los que vamos a trabajar (volcar la información desde Excel).
Puedes mostrar el panel de selección para este fin.
En nuestra hoja de cálculo, dentro de un libro de trabajo, tenemos la información a trasladar:
Es importante que sepas que, con lo que describiremos a continuación, no se traspasan los formatos dados en Excel... por ejemplo, si te fijas en la celda A5, en realidad, el valor de la celda es 1234!!, y no lo que mediante un formato personalizado se visualiza!!.
Esto vale para cualquier tipo de formato!!.
Añadimos el siguiente código en un módulo estándar de nuestro proyecto de VB:
Sub TrasladarDatoExcelaPPT() Dim oPPT As Object, oPrsn As Object, oSlide As Object Dim oShape1 As Object, oShape2 As Object Dim ficheroPPT As String 'La ruta completa de la presentación de PPT ficheroPPT = "E:\excelforo\Excel_a_PPt.pptx" 'Definimos el objeto de trabajo PowerPoint On Error Resume Next Set oPPT = GetObject(, "PowerPoint.Application") 'controlamos posibles errores If Err.Number <> 0 Then 'y creamos el objeto, i.e., la presentación Set oPPT = CreateObject("PowerPoint.Application") End If Err.Clear On Error GoTo 0 'hacemos visble la aplicación (voluntario.. pero recomendable) oPPT.Visible = True 'Abriremos nuestra presentación Set oPrsn = oPPT.Presentations.Open(ficheroPPT) 'accedemos a la primera diapositiva... Set oSlide = oPrsn.Slides(1) '...y nos centramos en las autoformas, cuadros de texto, etc '(es importante tener controlado el destino previamente!!!) Set oShape1 = oSlide.Shapes("CuadroTexto 1") Set oShape2 = oSlide.Shapes("Elipse 1") 'modificamos el texto del Título oSlide.Shapes.Title.TextFrame.TextRange.Text = "Modificación realizada" 'y finalmente llevamos el contenido de la celda A1 de la hoja1 de nuestro libro 'al objeto 1 (al cuadro de texto) oShape1.TextFrame.TextRange.Text = _ ThisWorkbook.Sheets(1).Range("A1").Value 'y el contenido de la celda A5 a la Elipse de la diapositiva oShape2.TextFrame.TextRange.Text = _ ThisWorkbook.Sheets(1).Range("A5").Value 'guardamos y cerramos la aplicación (PPT) 'oPPPrsn.Save 'oPPPrsn.Close 'oPPApp.Quit 'y liberamos memoria Set oPPT = Nothing Set oPrsn = Nothing Set oSlide = Nothing Set oShape1 = Nothing Set oShape2 = Nothing End Sub
Estamos listos... Ya podemos ejecutar nuestra macro.
Podremos ver como se van produciendo los cambios hasta llegar al resultado final:
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.