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:
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.
//Español
Hola a todos, hoy los voy a mostrar como programar en PowerPoint, esta vez les mostrare lo siguiente:
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
Como pudieron ver , yo ya le agregue unos comentarios en cada linea asi que pienso que el codigo queda un poco mas entendible
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
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
- 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 ^_^/
Excelente tu propuesta
ReplyDeleteNo se si podrias desarrollar con vba algun ejemplo que tenga animaciones
saludos
Hernan Alvarado
La Paz Bolivia
Hola ralde, mira te dejo el link de la entrada que realize acerca de tus comentarios:
Deletehttp://brion25.blogspot.com/2014/02/vba-powerpoint-animaciones-es.html
Espero te sea de ayuda :)
Interesante tu trabajo, me podrías indicar si tienes un manual para compartir sobre VBA para PowerPoint. Te agradezco de antemano.
ReplyDeleteSaludos.
Gracias José Carlos, tu aportación me parece fabulosa y de mucha ayuda. Estaré muy pendiente de tus próximas entregas sobre el tema.
ReplyDeleteFelicidades!