domingo, 18 de junio de 2023

Cuadrante de Servicio Parte 14

Vamos a continuar con nuestra aplicación.

En este caso vamos a diseñar la primer Diapositiva en PowerPoint, que por supuesto todo lo haremos desde Microsof Excel.

Por supuesto a nivel de modulo vamos a tener las siguientes variables:

Dim AppPP As Object

Dim PresentacionPP As Object

Dim DiapoPP As Object

Dim NombrePresentador As String

Dim CM As Single


Crearemos varias Subrutinas:

- CrearPresentacion.

- DestruirObjetos

- MenuPrincipal

- Diapositiva1


La SubRutina CrearPresentacion posee el siguiente código:

Private Sub CrearPresentacion()

    CM = 28.346    

    'Seleccionar la hoja correcta

    Sheets("ConexionPowerPoint").Select    

    'Capturar nombre del presentador

    NombrePresentador = InputBox("Ingrese el Nombre del Presentador", "Nombre del Presentador")

    'Crear (abrir) las aplicación PowerPoint

    Set AppPP = CreateObject("PowerPoint.Application")

    'Agregar una nueva presentación

    Set PresentacionPP = AppPP.Presentations.Add

    

    'Hacer que PowerPoint esté visible (NO activo)

    AppPP.Visible = True

End Sub

Aclaración.-

Estamos utilizando varias variables que se encuentran declaradas, por ejemplo CM que le hemos dado el valor de 28.346 que es este valor por que un centímetro en la diapositiva es igual a 28.346 puntos. Y esto es tanto para la posición como para el tamaño

La otra variable es NombrePresentador que nos llamará a un InputBox donde deberemos ingresar el nombre del presentador de la presentación de Power Point.

A continuación insertamos otra SubRutina, que es la de DestruirObjetos que es para liberar memoria.

Private Sub DestruirObjetos()


    'Destruir las variables objeto (en orden inverso)

     Set DiapoPP = Nothing

     Set PresentacionPP = Nothing

     Set AppPP = Nothing

     

End Sub

Aclaración.-

En realidad, no hay nada que aclarar, ya que está solamente libera memoria del ordenador, vaciando las variables declaradas tipo objetos.

Vamos a insertar el código para insertar una diaposivita en Power Point, con el diseño que he elegido, es decir con un titulo y un subtitulo, que esto nos lo da el layout igual a 1.

Private Sub Diapositiva1()

    'vamos a crear una dispositiva con Titulo y Subtitulo
    Set DiapoPP = PresentacionPP.slides.Add(Index:=1, Layout:=1)
    
    'Agregar un Logo guardado
    'Posición y tamaño se manejan por "puntos" (1 cm = 28.346 puntos)
     AppPP.activepresentation.slides(1).Shapes.AddPicture _
        "C:\NuestraCarpeta\Logo.png", _
            LinkToFile:=msoFalse, _
                SaveWithDocument:=msoTrue, _
                    Left:=30.34 * CM, Top:=0.57 * CM, Width:=3.53 * CM, Height:=3.53 * CM

    
    'Agregamos Texto que se encuentra en una hoja, es el Titulo
    DiapoPP.Shapes(1).TextFrame.TextRange.Text = Range("A1").Value
    
    'DANDO FORMATO AL TEXTO
    'Usando With / End With
    With DiapoPP.Shapes(1)
        .TextFrame.TextRange.Font.Name = "Times"
        .TextFrame.TextRange.Font.Color = vbBlue
        '.TextFrame.TextRange.Font.Size = 24
        '.TextFrame.TextRange.Font.Italic = True
        .TextFrame.TextRange.Font.Bold = True
    End With
    
    'Crear Subtitulo en la forma 2
    DiapoPP.Shapes(2).TextFrame.TextRange.Text = "Presentado por: " & NombrePresentador
    DiapoPP.Shapes(2).TextFrame.TextRange.ParagraphFormat.Alignment = msoAlignCenter
    
    
    With DiapoPP.Shapes(2)
        .TextFrame.TextRange.Font.Name = "Times"
        .TextFrame.TextRange.Font.Color = vbRed
        .TextFrame.TextRange.Font.Size = 24
        '.TextFrame.TextRange.Font.Italic = True
        .TextFrame.TextRange.Font.Bold = True
        .Top = 12 * CM
        .Left = 7.59 * CM
        .Width = 20 * CM
        .Height = 2 * CM
        'alineacion dentro del cuadro de texto
        .TextFrame.VerticalAnchor = msoAnchorMiddle 'centra verticalmente
        
    End With    

End Sub

Aclaración.-

Como hemos cogido el diseño de que nuestra diapositiva tenga un título y un subtítulo, debe tener que layout sea igual a 1.

Esta diapositiva lo que tendrá será el logo de nuestra compañía, que como ejemplo, he cogido una especie de avión. Por supuesto, la imagen la tengo en la carpeta donde se encuentra nuestro proyecto.
La siguiente linea es, primero donde se encuentra la imagen, y le hemos dado la posición y el tamaño a la imagen con  left, top que nos da la posición; con width y height le damos el tamaño a la imagen.

Por supuesto, primero la hemos insertado la imagen, y posteriormente la hemos modificado, tanto el tamaño como la posición, y como vemos la multiplicamos por nuestra variable de CM.



Continuamos con el título y el subtítulo, y lo hemos hecho con la línea:

'Agregamos Texto que se encuentra en una hoja, es el Titulo
    DiapoPP.Shapes(1).TextFrame.TextRange.Text = Range("A1").Value

Y como vemos nos coge el título del valor de la celda A1 de nuestra hoja.

Y el Subtitulo:
'Crear Subtitulo en la forma 2
    DiapoPP.Shapes(2).TextFrame.TextRange.Text = "Presentado por: " & NombrePresentador
    DiapoPP.Shapes(2).TextFrame.TextRange.ParagraphFormat.Alignment = msoAlignCenter

Para el subtïtulo hemos cogido el valor de nuestra variable NombrePresentador, y lo hemos colacado en el centro.

Tengo que aclarar que DiapoPP.Shapes(2) es la segunda forma que tiene la diapositiva, que es el subtítulo, y en el caso del título posee el número dentro del paréntesis el 1.

Con la parte de With DiapoPP.Shapes(2) le hemos dado formato, posición y alineación.


La diapositiva que hace que todo se reproduzca es la del MenuPrincipal

Private Sub MenuPrincipal()

    CrearPresentacion
    Diapositiva1
    DestruirObjetos
    
End Sub

Esta SubRutina nos lanza las tres subrutinas que hemos creado.




Así nos ha quedado la primera Diapositva, en las próximas entradas seguiremos con las siguientes.

No hay comentarios:

Publicar un comentario

Gracias por participar en esta página.