Biblioteca de referencia de PowerPoint VBA

脥ndice
  1. Hacer referencia a presentaciones, diapositivas y formas.
  2. Cuente el n煤mero de diapositivas
  3. Obtener el n煤mero de 铆ndice de la diapositiva actual
  4. Agregar diapositivas
  5. Eliminar diapositivas
  6. Mover diapositivas
  7. Recorriendo todas las diapositivas de la presentaci贸n activa
  8. Recorriendo todas las formas en la diapositiva activa
  9. Recorriendo todas las formas en todas las diapositivas
  10. Recorriendo todas las formas vinculadas en todas las diapositivas
  11. Administrar enlaces
    1. M茅todos de nivel de presentaci贸n
    2. M茅todos de nivel de forma
  12. formas

El siguiente c贸digo pretende ser una referencia b谩sica para cualquiera que intente utilizar c贸digo VBA para Powerpoint. Ciertamente no est谩 completo, pero es un c贸digo que he usado por varias razones. Intentar茅 agregar y mejorar esta referencia a medida que use m谩s c贸digo VBA de PowerPoint.

Hacer referencia a presentaciones, diapositivas y formas.

'Establece la variable pptPresentation en la presentaci贸n activa Dim pptPresentation As PresentationSet pptPresentation = ActivePresentation
'Establece la variable pptSlide en el slideDim pptSlide activo As SlideSet pptSlide = Application.ActiveWindow.View.Slide
'Establece la variable pptSlide en una diapositiva espec铆fica (la cuarta diapositiva)Dim pptSlide As SlideSet pptSlide = ActivePresentation.Slides(4)
'Establece la variable pptObject en el ObjectDim pptObject seleccionado como ObjectSet pptObject = ActiveWindow.Selection.ShapeRange

Cuente el n煤mero de diapositivas

'Cuenta el n煤mero de diapositivas en la presentaci贸n activaDebug.Print ActivePresentation.slides.Count

Obtener el n煤mero de 铆ndice de la diapositiva actual

'Obtiene el n煤mero de diapositiva de la diapositiva activaDebug.Print Application.ActiveWindow.View.Slide.SlideIndex

Agregar diapositivas

'Crea una nueva diapositiva en blanco en la posici贸n 5 de la presentaci贸n activaDim pptSlide As SlideSet pptSlide = ActivePresentation.Slides.Add(5, ppLayoutBlank)
'Crea una nueva diapositiva en blanco al final de la presentaci贸n activaDim pptSlide As SlideSet pptSlide = ActivePresentation.Slides.Add(ActivePresentation.Slides.Count + 1, ppLayoutBlank)

ppLayoutBlank es solo una de las opciones de dise帽o disponibles.

ppLayoutEn blanco
ppLayoutChart
ppLayoutChartAndText
ppLayoutClipartAndText
ppLayoutClipArtAndVerticalText
ppLayoutFourObjects
ppLayoutLargeObject
ppLayoutMediaClipAndText
ppLayoutMixed
ppLayoutObject
ppLayoutObjectAndText
ppLayoutObjectOverText
ppLayoutOrgchart
ppLayoutTable
ppLayoutText
ppLayoutTextAndChart
ppLayoutTextAndClipart
ppLayoutTextAndMediaClip
ppLayoutTextAndObject
ppLayoutTextAndTwoObjects
ppLayoutTextOverObject
ppLayoutTitle
ppLayoutTitleOnly
ppLayoutTwoColumnText
ppLayoutTwoObjectsAndText
ppLayoutTwoObjectsOverText
ppLayoutVerticalText
ppLayoutVerticalTitleAndText
ppLayoutVerticalTitleAndTextOverChart

Eliminar diapositivas

'Eliminar una diapositiva, diapositiva 6 en este ejemplo ActivePresentation.Slides(6).Delete

Mover diapositivas

'Mueve la posici贸n de una diapositiva, mueve la diapositiva 4 para convertirla en la diapositiva 2ActivePresentation.Slides(4).MoveTo toPos:=2

Recorriendo todas las diapositivas de la presentaci贸n activa

'Recorre cada diapositiva en la presentaci贸n activaDim pptSlide As SlideDim pptShape As ShapePara cada pptSlide en ActivePresentation.Slides 'Haz algo en cada diapositiva Siguiente

Recorriendo todas las formas en la diapositiva activa

'Recorriendo todas las formas en la diapositiva activaDim pptSlide As SlideDim pptShape As ShapeSet pptSlide = Application.ActiveWindow.View.SlideFor Each pptShape In pptSlide.Shapes 'Haz algo con cada formaSiguiente

Recorriendo todas las formas en todas las diapositivas

'Recorre todas las formas en todas las diapositivas de la presentaci贸n activa.Dim pptSlide As SlideDim pptShape As ShapePara cada pptSlide en ActivePresentation.Slides para cada pptShape en pptSlide.Shapes 'Haz algo con esas formas NextNext

Recorriendo todas las formas vinculadas en todas las diapositivas

'Recorre en bucle todas las formas vinculadas en todas las diapositivas de la presentaci贸n activa. Dim pptSlide As SlideDim pptShape As ShapeFor Each pptSlide In ActivePresentation.Slides For Each pptShape In pptSlide.Shapes If pptShape.Type = msoLinkedPicture O pptShape.Type = msoLinkedOLEObject Entonces 'Haz algo con esas formas vinculadas Finalizar si SiguienteSiguiente

Si est谩 aplicando un m茅todo, la otra opci贸n es aplicar el m茅todo a todas las formas, incluso si no est谩n vinculadas. Deber谩 manejar los errores en los que esa forma no sea una forma vinculada.

'Recorre en bucle todas las formas vinculadas en todas las diapositivas de la presentaci贸n activa. Dim pptSlide As SlideDim pptShape As ShapeFor Each pptSlide In ActivePresentation.Slides For Each pptShape In pptSlide.Shapes On Error Reanudar Siguiente 'Aplica el m茅todo a todas las formas, incluso si algunas formas generar谩n un error. Error Ir a 0 SiguienteSiguiente

Administrar enlaces

Algunos de los m茅todos relacionados con los enlaces ocurren a nivel de presentaci贸n, mientras que otros ocurren a nivel de forma.

M茅todos de nivel de presentaci贸n

'Romper todos los enlacesActivePresentation.BreakLinks
'Actualizar todos los enlacesActivePresentation.UpdateLinks

M茅todos de nivel de forma

Los fragmentos de c贸digo de esta secci贸n no son independientes. Deben usarse donde pptShape se haya configurado o definido a trav茅s de un bucle.

'Romper el enlace de una forma vinculada espec铆ficapptShape.LinkFormat.BreakLink
'Actualiza el enlace a una forma vinculada espec铆ficapptShape.LinkFormat.UpdateLink
'Cambie el tipo de enlace a Actualizaci贸n manualpptShape.LinkFormat.AutoUpdate = ppUpdateOptionManual

'Cambie el tipo de enlace a actualizaci贸n autom谩ticapptShape.LinkFormat.AutoUpdate = ppUpdateOptionAutomatic
'Cambie un enlace para ir a un nuevo archivo fuentepptShape.LinkFormat.SourceFullName = "C:UsersmarksExcelBook.xlsx!Sheet1!R1C1:R20C20"

formas

'Crea una forma y config煤rala en una variableDim pptSlide As SlideDim pptShape As ShapeSet pptSlide = Application.ActiveWindow.View.Slide Set pptShape = pptSlide.Shapes.AddShape(Type:=msoShapeRectangle, _Left:=50, Top:=50, Ancho: =50, Altura:=50)'Nombra la formapptShape.Name = "myShape
'Muestra los tama帽os de la forma seleccionadaDim msgText As StringmsgText = "Top: " ActiveWindow.Selection.ShapeRange.Top vbNewLinemsgText = msgText "Left: " ActiveWindow.Selection.ShapeRange.Left vbNewLinemsgText = msgText "Height: " ActiveWindow.Selection.ShapeRange. Alto vbNewLinemsgText = msgText "Ancho: " ActiveWindow.Selection.ShapeRange.Width vbNewLineMsgBox msgText

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...