Como Controlar PowerPoint desde Excel usando VBA

Índice
  1. Habilite la cinta de desarrollador de PowerPoint
  • La belleza del modelo de objetos
  • Tomando código de Internet
    1. Fuentes de referencia de PowerPoint VBA:
  • Uso del Explorador de objetos e IntelliSense para ayudar a escribir el código
  • Conclusión
  • Hasta ahora, en esta serie sobre el uso de VBA para controlar otras aplicaciones de Office, hemos analizado los conceptos básicos del control de otras aplicaciones de Office y, específicamente, cómo crear macros para controlar Word desde Excel . Nuestro enfoque para crear macros para controlar Word fue utilizar la Grabadora de macros. Registramos acciones muy breves, copiamos y pegamos el código en el Editor VBA de Excel, luego adaptamos el código para incluir las referencias a la aplicación Word. Lentamente, acción por acción, construimos nuestra Macro usando código grabado. Sería lógico pensar que podríamos utilizar los principios que aprendimos para Word y aplicarlos a PowerPoint.

    Pero hay un gran problema al utilizar este enfoque con PowerPoint: PowerPoint no tiene una Grabadora de macros . Podemos usar código VBA en PowerPoint, pero no existe una Grabadora de macros para crearlo. Como resultado, no podemos grabar el código VBA de PowerPoint para copiarlo en nuestra macro de Excel.

    Pero la falta del Grabador de Macros de PowerPoint no nos detendrá. Si queremos controlar PowerPoint desde Excel, sólo necesitamos encontrar un enfoque diferente. Estos son los tres métodos que consideraremos para obtener un código VBA de PowerPoint válido.

    • La belleza del modelo de objetos (cómo usar el código de Excel para controlar PowerPoint)
    • Tomando código de Internet
    • Uso del Explorador de objetos e IntelliSense para ayudar a escribir el código

    Sin embargo, antes de llegar allí, debemos habilitar la cinta de desarrollador en PowerPoint. Esto es para que podamos comprobar que el código funciona antes de pasarlo a Excel.

    Habilite la cinta de desarrollador de PowerPoint

    Si ha habilitado el menú Desarrollador de Excel, es el mismo proceso en PowerPoint.

    En PowerPoint: Archivo – Opciones – Personalizar cinta

    Luego marque la opción Cinta de desarrollador y luego haga clic en Aceptar.

    Habilitar la cinta de desarrollador de PowerPoint

    La belleza del modelo de objetos

    El modelo de objetos es la estructura subyacente de todos los objetos dentro de Excel. Dentro de VBA, una celda es un objeto, un gráfico es un objeto, una forma dibujada es un objeto. Cada uno de estos objetos tiene métodos (las acciones que podemos realizar con los objetos, por ejemplo, agregar o eliminar) y propiedades (los atributos de los objetos, por ejemplo, su altura o ancho). El Modelo de Objetos para controlar objetos en Excel es similar al Modelo de Objetos en PowerPoint.

    Aquí hay un código Excel VBA grabado para crear una forma y colorearla de rojo.

    ActiveSheet.Shapes.AddShape(msoShapeRectangle, 50, 50, 50, 50).SelectWith Selection.ShapeRange.Fill .Visible = msoTrue .ForeColor.RGB = RGB(255, 0, 0) .Transparency = 0 .SolidEnd With

    Aquí hay un código de Powerpoint VBA para crear una forma y colorearla de rojo (usando el código de Excel VBA como punto de partida).

    Atenuar myShape As ShapeSet myShape = ActiveWindow.View.Slide.Shapes.AddShape(msoShapeRectangle, 50, 50, 50, 50)With myShape.Fill .Visible = msoTrue .ForeColor.RGB = RGB(255, 0, 0) .Transparency = 0 .SolidEnd con

    En el código siguiente he resaltado en rojo el código de PowerPoint que es exactamente igual que el código de Excel VBA.

    Atenuar myShape As ShapeSet myShape = ActiveWindow.View.Slide.Shapes.AddShape(msoShapeRectangle, 50, 50, 50, 50)With myShape.Fill .Visible = msoTrue .ForeColor.RGB = RGB(255, 0, 0) .Transparency = 0 .SolidEnd con

    ¿Notaste que la mayor parte del código era el mismo? Las diferencias clave fueron cómo nos referimos a la aplicación y la presentación. En Excel podríamos usar "ActiveSheet" para referirnos a la hoja de trabajo actual, pero en PowerPoint podríamos usar "ActiveWindow.View.Slide". Una vez que sepamos esto podremos adaptar el código que hemos registrado en Excel. Podemos cambiar las referencias al modelo de objetos de PowerPoint y el código funcionará.

    Antes de que te emociones demasiado. . . No se garantiza que esto funcione con todos los objetos. El hecho de que algo funcione en Excel no significa que funcionará perfectamente en PowerPoint. Pero es un método para probar.

    Usando Early Binding , nuestro código podría adaptarse de la siguiente manera: los cambios del código directamente arriba están coloreados en rojo.

    Dim pptApp As PowerPoint.ApplicationSet pptApp = Nuevo PowerPoint.ApplicationDim myShape As ObjectSet myShape = pptApp.ActiveWindow.View.Slide.Shapes. _AddShape(msoShapeRectangle, 50, 50, 50, 50)Con myShape.Fill .Visible = msoTrue .ForeColor.RGB = RGB(255, 0, 0) .Transparency = 0 .SolidEnd With

    Con sólo unos pocos cambios cuidadosamente pensados ​​en el código de Excel, ahora podemos controlar PowerPoint desde Excel. Los cambios del código de PowerPoint son:

    • Referencia a la aplicación PowerPoint ahora incluida
    • Todas las variables de Objeto (como las formas) deben crearse como Objeto en la declaración Dim

    Tomando código de Internet

    Tienes la opción de obtener código directamente de Internet; ciertamente no es una mala idea. Las personas que administran sitios web que comparten código quieren que usted aprenda usando ese código, así que aprovéchelo al máximo.

    Si realmente quieres entender lo que significa el código, te recomiendo que sigas la regla de oro número 1:

    Si desea copiar un código que no comprende, debe escribirlo usted mismo; no se limite a copiar y pegar.

    No hay tanto código VBA de PowerPoint en Internet como código VBA de Excel, pero está ahí. Una vez que comprenda el modelo de objetos, será razonablemente sencillo.

    Fuentes de referencia de PowerPoint VBA:

    • Excel fuera de la red - Biblioteca PowerPoint VBA
    • El gurú de las hojas de cálculo
    • Red de desarrolladores de Microsoft
    • Consejos de oficina
    • PPTAlquimia

    Uso del Explorador de objetos e IntelliSense para ayudar a escribir el código

    El Explorador de objetos es la biblioteca de objetos en VBA. Para ver el Explorador de objetos, haga clic en Ver – Explorador de objetos (o el acceso directo F2) desde el Editor de Visual Basic. La siguiente captura de pantalla muestra la ventana del Explorador de objetos.

    Biblioteca de objetos de PowerPoint VBA

    Desde el Explorador de objetos es posible buscar el nombre de cualquier objeto. La ventana Resultados de la búsqueda muestra todos los lugares en el modelo de objetos donde existe ese objeto. La ventana Miembros muestra todos los objetos, métodos y propiedades disponibles para el objeto.

    IntelliSense es la función que muestra los cuadros pequeños a medida que escribe código VBA (vea la imagen a continuación).

    Ventana Intellisense Powerpoint VBA

    Si tenemos un fragmento de código y no estamos seguros de lo que vendrá después, simplemente desplácese por las opciones de IntelliSense (estas son las mismas opciones que se muestran en el Explorador de objetos). Si no está en la lista de IntelliSense, entonces no es código viable.

    Conclusión

    Así que ahí lo tenemos. 3 formas de escribir código VBA de PowerPoint válido. Nada de esto es sencillo, por lo que cuando te topas con un problema, Google es definitivamente tu mejor amigo. Lo más probable es que alguien haya tenido el mismo problema antes que usted.


    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar la experiencia del usuario y garantizar un funcionamiento eficiente. Al utilizar nuestro sitio web, aceptas todas las cookies de acuerdo con nuestra política de cookies. Leer mas...