Cómo Utilizar una Macro en PowerPoint

Cómo Utilizar una Macro en PowerPoint



En este artículo, aprenderás cómo usar una macro en PowerPoint que lee texto desde un archivo CSV y genera diapositivas automáticamente. Estas diapositivas luego pueden convertirse en imágenes que se compartirán en redes sociales.
 

¿Qué es una macro?

Una macro es un conjunto de instrucciones automatizadas que puede ejecutar una tarea repetitiva de manera eficiente. En este caso, la macro se encargará de leer un archivo CSV dónde tengan una lista de frases y convertir ese contenido en diapositivas de PowerPoint y en cada diapositiva colocaremos una misma imagen.

Pasos para utilizar la macro

1. Preparar tu archivo CSV

Primero, necesitas crear un archivo CSV (valores separados por comas) que contenga el texto que deseas convertir en imágenes para tus redes sociales. Puedes utilizar Excel o cualquier editor de texto para crear este archivo. Asegúrate de que cada fila del archivo CSV contenga el texto de una publicación diferente.

Por ejemplo, tu archivo CSV podría verse así

"Publicación sobre el nuevo lanzamiento de producto"
"Descuento especial para seguidores de Instagram"
"Consejos rápidos para mejorar tu productividad"

2. Crear la macro en PowerPoint


Una vez que tengas el archivo CSV, el siguiente paso es crear la macro en PowerPoint. Para hacerlo:

Abre PowerPoint.

Presiona Alt + F11 para abrir el editor de VBA.

Inserta un nuevo módulo seleccionando Insertar > Módulo.



Copia el siguiente código en el módulo:


Sub ImportTextFromCSV()
'chatgp
'programacionparatodos.com
    Dim csvFilePath As String
    Dim imageFilePath As String
    Dim fileNumber As Integer
    Dim lineOfText As String
    Dim slideIndex As Integer
    Dim currentSlide As slide
    Dim textBox As Shape
    Dim picture As Shape
    Dim slideWidth As Single
    Dim slideHeight As Single
    Dim imgWidth As Single
    Dim imgHeight As Single
    Dim imgLeft As Single
    Dim imgTop As Single
    
    ' Especifica la ruta de tu archivo CSV y la imagen
    csvFilePath = "C:\ruta\del\archivo.csv"
    imageFilePath = "C:\ruta\de\la\imagen.jpg"
    
    ' Tamaño deseado para la imagen
    imgWidth = 400 ' Ajusta este valor según sea necesario
    imgHeight = 300 ' Ajusta este valor según sea necesario
    
    ' Abre el archivo CSV
    fileNumber = FreeFile
    Open csvFilePath For Input As fileNumber

    ' Lee el archivo línea por línea
    slideIndex = 1
    While Not EOF(fileNumber)
        Line Input #fileNumber, lineOfText
        
        ' Añadir una diapositiva en blanco (sin cuadros de texto preexistentes)
        Set currentSlide = ActivePresentation.Slides.Add(slideIndex, ppLayoutBlank)
        
        ' Obtener las dimensiones de la diapositiva
        slideWidth = ActivePresentation.PageSetup.SlideWidth
        slideHeight = ActivePresentation.PageSetup.SlideHeight
        
        ' Calcular la posición para centrar la imagen
        imgLeft = (slideWidth - imgWidth) / 2
        imgTop = (slideHeight - imgHeight) / 2
        
        ' Añadir la imagen centrada
        Set picture = currentSlide.Shapes.AddPicture(FileName:=imageFilePath, _
                                                     LinkToFile:=msoFalse, _
                                                     SaveWithDocument:=msoTrue, _
                                                     Left:=imgLeft, Top:=imgTop, _
                                                     Width:=imgWidth, Height:=imgHeight)
        
        ' Añadir el cuadro de texto y colocarlo sobre la imagen
        Set textBox = currentSlide.Shapes.AddTextbox(msoTextOrientationHorizontal, imgLeft, imgTop - 50, imgWidth, 50)
        textBox.TextFrame.TextRange.Text = lineOfText
        textBox.TextFrame.TextRange.ParagraphFormat.Alignment = ppAlignCenter ' Centrar el texto
        textBox.TextFrame.VerticalAnchor = msoAnchorMiddle
        
        slideIndex = slideIndex + 1
    Wend
    
    ' Cerrar el archivo CSV
    Close fileNumber
End Sub


Este código leerá cada línea del archivo CSV y generará una diapositiva en PowerPoint con ese texto.

Explicación del Código: Importar Texto y Agregar Imágenes en PowerPoint

Este código es una macro de VBA para PowerPoint que tiene como objetivo crear una serie de diapositivas a partir de un archivo CSV. En cada diapositiva, se coloca una imagen centrada, y sobre la imagen se añade un texto que proviene del archivo CSV.

  1. Declaración de Variables
  • csvFilePath y imageFilePath: Almacenan las rutas del archivo CSV y la imagen que vamos a insertar.
  • fileNumber: Es el número de archivo asignado para la lectura del CSV.
  • lineOfText: Almacena el contenido de cada línea leída desde el archivo CSV.
  • slideIndex: Se utiliza para controlar el índice de la diapositiva que se va creando.
  • currentSlide: Representa la diapositiva actual que se está creando.
  • textBox y picture: Representan los objetos que vamos a agregar a la diapositiva: un cuadro de texto y una imagen.
  • slideWidth y slideHeight: Guardan el ancho y alto de la diapositiva.
  • imgWidth, imgHeight, imgLeft y imgTop: Son variables que controlan el tamaño y la posición de la imagen dentro de la diapositiva.
  •     

        2. Especificación de las Rutas y Tamaño de la Imagen

    Aquí especificamos la ruta del archivo CSV y de la imagen que se va a insertar. Además, se define el tamaño deseado para la imagen (400 de ancho y 300 de alto).

    3. Lectura del Archivo CSV

    Utilizamos FreeFile para obtener un identificador de archivo que no esté en uso, luego abrimos el archivo CSV para leer su contenido línea por línea. 

    4. Creación de Diapositivas y Contenido

    El bucle While recorre cada línea del archivo CSV, almacenando cada línea de texto en la variable lineOfText. Luego, crea una nueva diapositiva usando el diseño ppLayoutBlank (sin cuadros de texto predefinidos).

    5. Obtener las Dimensiones de la Diapositiva

    slideWidth y slideHeight. Esto es necesario para calcular la posición centrada de la imagen.

    6. Cálculo de la Posición Centrada de la Imagen

    Calculamos la posición imgLeft y imgTop para centrar la imagen en la diapositiva. Esto se hace restando el tamaño de la imagen del tamaño de la diapositiva y dividiendo por 2. 

    7. Agregar la Imagen Centrada

    Aquí insertamos la imagen centrada en la diapositiva usando el método AddPicture. Este método recibe como parámetros la ruta del archivo de imagen, su posición (imgLeft, imgTop) y su tamaño (imgWidth, imgHeight).

    8. Agregar el Texto sobre la Imagen

    El texto leído del archivo CSV se agrega sobre la imagen mediante un cuadro de texto (AddTextbox). La posición del cuadro de texto está justo encima de la imagen, con el mismo ancho que esta. El texto se centra horizontalmente con ppAlignCenter y verticalmente con msoAnchorMiddle.

    9. Avanzar al Siguiente Ítem

    Después de crear una diapositiva, el índice se incrementa para preparar la creación de la siguiente diapositiva. Esto con slideIndex = slideIndex + 1

    10. Cerrar el Archivo

    Finalmente, cerramos el archivo CSV una vez que se han leído todas las líneas.

    Resumen

    Este código:

    • Abre un archivo CSV y lee cada línea de texto.
    • Crea una nueva diapositiva por cada línea del archivo.
    • Inserta una imagen centrada en la diapositiva.
    • Coloca el texto leído del CSV justo sobre la imagen.
    • Utiliza un diseño en blanco para evitar cuadros de texto predeterminados.

    Si tienes alguna duda o necesitas más detalles, ¡no dudes en preguntar!

    3. Ejecutar la macro

    • Guarda el archivo CSV en la ubicación que especificaste en el código.
    • Vuelve a PowerPoint, presiona Alt + F8 para abrir la lista de macros y selecciona ImportTextFromCSV.
    • La macro leerá el archivo CSV y creará diapositivas con el texto de cada fila del archivo.


    4. Exportar las diapositivas como imágenes
    Una vez que PowerPoint haya generado las diapositivas con el contenido de tu CSV, puedes exportarlas como imágenes. Para hacerlo:

    Ve a Archivo > Guardar como.
    Selecciona el formato "JPEG" o "PNG" para exportar las diapositivas como imágenes.
    Selecciona si deseas exportar solo la diapositiva actual o todas las diapositivas.
    Ahora, tendrás una serie de imágenes listas para publicar en redes sociales. Puedes programarlas en Instagram o Facebook utilizando herramientas de gestión de redes sociales.

    También les comparto un video donde explico como hacer el proceso de la macro


    Ventajas de esta macro

    • Automatización: Con esta macro, puedes automatizar la creación de contenido para redes sociales, ahorrando tiempo valioso.
    • Consistencia: Las diapositivas generadas desde PowerPoint te permiten mantener un estilo visual coherente.
    • Personalización: Puedes personalizar el diseño de tus diapositivas con plantillas y estilos, para asegurarte de que tus imágenes sean atractivas y alineadas con tu marca.

    Utilizar macros en PowerPoint es una manera poderosa de acelerar la producción de contenido para redes sociales y asegurarte de que siempre tengas material atractivo para compartir. ¡Empieza a automatizar tu creación de contenido hoy mismo!

    Mejoras a la macro

    1. Leer de un archivo las imágenes y poder utilizar una imagen distinta por diapositiva o slide
    2. Cambiar el formato del texto
    3. Después de crear la diapositiva ,guardar las imágenes de salida como png 

    Comentarios

    Entradas más populares de este blog

    Ejemplo Macro en Word

    Macro de Excel para abrir archivo csv

    Graficar funciones en Python con dataframes