VBA Introduction PowerPoint | VBA Introduccion PowerPoint

Hi Everybody before I start this post, I would like to tell you that since now I´m going to start to share with you my posts in Spanish and in English Too. I hope that this modality could help you a little bit more.

Hola A todos antes de empezar con el tema de hoy, me gustaría comentarles que desde hoy estaré publicando todo en ingles y español. Espero les sea de mas utilidad.

//English

Hi everybody, today I´m going to show you how to do some programming since PowerPoint, this time I´m going to show you these things:

  • Insert Slides
  • Create Objects in the Slides
  • Hyperlinks
  • Auto SlideShow
Ok first we need to have our "Developer" Tab available, if you don´t have this tab, please click here, to see the other post where I explain how to enable it.

Now Let´s start to coding:

  • Click on the "Visual Basic" icon on our Developer Tab, once you have clicked it a new window will appear , this window is our developing environment 

  • Now to create a new Macro, right click on VBAProject(Presentation1)->Insert->Module. Once you have done that, a new window called Module1 will appear, in this window we are going to program

  • Now the funny part: CODING!!!. Copy and Paste the following code on your window "Module1":
Public Sub sample()
    Dim presentation As presentation 'this line will create an Object of type Presentation
    Dim Sld As Slide ' this line will create an object of type Slide
    Dim shp As Shape 'This line will create an object of type Shape
    Set Pre = ActivePresentation 'Here we initialize our variable pre with the value of our active presentation
    Set Sld = Pre.Slides.Add(Index:=Pre.Slides.Count + 1, Layout:=ppLayoutBlank) 'Here we add 1 blank slide to our presentation. You can choose the type of the slide, just need to change Layout:=ppLayoutBlank to Layout:=[Another type]
    Set Sld = Pre.Slides.Add(Index:=Pre.Slides.Count + 1, Layout:=ppLayoutBlank) 'Let´s create another Slide
    Set shp = Sld.Shapes.AddShape(msoShapeDiamond, 50, 50, 100, 100) 'Here we are creating a Diamond, in the coordinates(50,50) with height and width of 100
    shp.ActionSettings(ppMouseClick).Action = ppActionHyperlink 'Here we are telling to the program, that this shape has an hyperlink
    shp.ActionSettings(ppMouseClick).Hyperlink.SubAddress = 1 'Here we are telling to the program the address of the link of the shape
    ActivePresentation.SlideShowSettings.Run 'And finally with this line we run the Presentation
End Sub


As you can see I´ve already add some comments of each line so I think this could be more easy to understand the functionality of this macro.

  • Now just click on the Run Button

  •  And our presentation will start

What have we learned?
  • Insert Slides
with this line: Activepresentation.Slides.Add([Index],[Layout]) you can add more sliders, the index has to be unique due to you can have 2 sliders in the same Index, I mean, it´s one essential rule for the programmers. 
  • Create Objects in the Slides
With the Line: ActivePresentation.Slides([Index of the Slider where you are gonna draw a new shape]).AddShape([Type of the Shape],[Position x],  [Position y],  [Width], [Height]) you can draw any shape of PowerPoint
  • Hyperlinks
With this 2 lines:

ActivePresentation.Slides([Index of the Slider where you are the shape is]).Shapes([Index of the Shape which will have the hyperlink]).ActionSettings([Type of event with the mouse]).Action=[Event which will throw the action]

ActivePresentation.Slides([Index of the Slider where you are gonna draw a new shape]).Shapes([Index of the Shape which will have the hyperlink]).ActionSettings([Type of event with the mouse]).Hyperlink.Subaddress=[Index of the Slide where the shape will redirect you]

We need these 2 lines to create an hyperlink due to in the first one we are creating the "event", I mean, as the comments say, we are telling to the program that this shape has an hyperlink and with the second one we are telling where the event should redirect us.
  • Auto SlideShow
And finally with this line: ActivePresentation.SlideShowSettings.Run We running the presentation.

Well Guys this is it for now, I hope this will help you and if you have doubts or comments please share them in the respective area, so for now, see you chavoz ^_^/.

//Español


Hola a todos, hoy los voy a mostrar como programar en PowerPoint, esta vez les mostrare lo siguiente:

  • Insertar Diapositivas
  • Crear Objetos en las dispositivas
  • Hyper vínculos
  • Empezar automaticamente la presentación


Ok antes de empezar necesitamos tener nuestra pestaña de "Desarrollador" disponible, si no la tienes, por favor da click aquí para que veas mi otro post donde explico como habilitarla

Ahora empezemos a trabajar:
  • Click en el icono de "Visual Basic" en nuestra pestaña de desarrollador. Una vez que le hayas dado click una nueva ventana se abrirá, esta ventana es nuestro ambiente de desarrollo.

  • Ahora para crear un nuevo macro, damos click derecho en VBAProject(Presentation1)->Insertar->Modulo. Una vez que le hayas dado click una nueva ventana llamada Modulo1 aparecerá, en esta ventana es donde vamos a programar

  • Ahora la parte divertida: PROGRAMACION!!! Para esto copien y peguen el siguiente codigo en su ventana de modulo1
Public Sub sample()
    Dim presentation As presentation 'Esta linea crea un objeto de tipo presentación
    Dim Sld As Slide ' esta linea crea un objeto de tipo dispositiva
    Dim shp As Shape 'Esta linea crea un objeto de tipo figura
    Set Pre = ActivePresentation 'Aqui inicializamos nuestra variable pre con el valor de la presentación activa
    Set Sld = Pre.Slides.Add(Index:=Pre.Slides.Count + 1, Layout:=ppLayoutBlank) 'Aqui agregamos una nueva dispositiva, esta dispositiva es una dispositiva en blanco para cambiar el tipo de dispositiva solo cambiar Layout:=ppLayoutBlank a Layout:=[Otro tipo]
    Set Sld = Pre.Slides.Add(Index:=Pre.Slides.Count + 1, Layout:=ppLayoutBlank) 'Crearemos otra dispositiva
    Set shp = Sld.Shapes.AddShape(msoShapeDiamond, 50, 50, 100, 100) 'Aqui creamos un diamante en las coordenadas(50,50) con una altura y ancho de 100
    shp.ActionSettings(ppMouseClick).Action = ppActionHyperlink 'Aqui le estamos diciendo al programa que esta figura tendra un hyper vinculo
    shp.ActionSettings(ppMouseClick).Hyperlink.SubAddress = 1 'Aqui le estamos diciendo al programa la direccion del hyper vinculo
    ActivePresentation.SlideShowSettings.Run 'Y finalmente con esta linea corremos nuestra presentación
End Sub


Como pudieron ver , yo ya le agregue unos comentarios en cada linea asi que pienso que el codigo queda un poco mas entendible

  • Ahora solo le damos click en el botón de correr

  • Y nuestra presentación empezara: 

Que hemos aprendido?
  • Insertar Diapositivas
Con esta linea: Activepresentation.Slides.Add([Indice],[Tipo de diapositiva]) tu puedes agregar mas diapositivas, el indice tiene que ser unico ya que 2 diapositivas no pueden estar asociadas con el mismo indice. Eso creo yo es algo esencial para nosotros como programadores el saber usar adecuadamente los indices
  • Crear Objetos en las Diapositivas
Con la Linea: ActivePresentation.Slides([Indice de la diapositiva donde se dibujara la figura]).AddShape([Tipo de la figura],[Posicion x],  [Posicion y],  [Ancho], [Largo]) Tu puedes dibujar cualquier objeto en PowerPoint
  • Hyper vinculos
Con estas dos lineas:

ActivePresentation.Slides([Indice de la diapositiva donde se ubica la figura]).Shapes([Indice de la figura que tendra el hyper vinculo]).ActionSettings([tipo del evento del mouse]).Action=[Evento el cual desencadenara la acción]

ActivePresentation.Slides([Indice de la diapositiva donde se ubica la figura]).Shapes([Indice de la figura que tendra el hyper vinculo]).ActionSettings([tipo del evento del mouse]).Hyperlink.Subaddress=[Indice de la diapositiva donde quieres que el hyper vinculo te lleve]

Necesitamos de estas 2 lineas para poder crear un hyper vinculo, ya que en la primera simplemente estamos creando el "evento", es decir, estamos diciendole al programa que la diapositiva con la figura n tendra un hyper vinculo y la segunda linea le esta diciendo al programa hacia donde esta dirigido ese hyper vinculo.
  • Iniciar la presentacion automaticamente
Y finalmente con la linea: ActivePresentation.SlideShowSettings.Run La presentacion empezara automáticamente.

Bueno chavoz esto fue todo por ahora, espero le haya servido de utilidad y cualquier duda o comentario por favor compartanlo en la respectiva área y por lo pronto es todo, adios ^_^/

Comments

  1. Excelente tu propuesta
    No se si podrias desarrollar con vba algun ejemplo que tenga animaciones
    saludos
    Hernan Alvarado
    La Paz Bolivia

    ReplyDelete
    Replies
    1. Hola ralde, mira te dejo el link de la entrada que realize acerca de tus comentarios:

      http://brion25.blogspot.com/2014/02/vba-powerpoint-animaciones-es.html

      Espero te sea de ayuda :)

      Delete
  2. Interesante tu trabajo, me podrías indicar si tienes un manual para compartir sobre VBA para PowerPoint. Te agradezco de antemano.

    Saludos.

    ReplyDelete
  3. Gracias José Carlos, tu aportación me parece fabulosa y de mucha ayuda. Estaré muy pendiente de tus próximas entregas sobre el tema.
    Felicidades!

    ReplyDelete

Post a Comment

Popular posts from this blog

Juego de Gato Usando HTML, JavaScript y CSS

AfterEffects - Quitar el Fondo de un Video Forma 1: KeyLight

Crear un nuevo Libro de Excel con VBA ES