Tengo el siguiente código VBA para crear una nueva diapositiva de PowerPoint:

longSlideCount = ActivePresentation.Slides.Count

With ActivePresentation.Slides
    Set slideObject = .Add(longSlideCount + 1, ppLayoutTitle)
End With

…que inserta una nueva diapositiva de tipo ‘ppLayoutTitle’, pero me pregunto si es posible crear un diseño personalizado en la ‘Vista patrón de Diapositivas” y, a continuación, inserte que particular plantilla de diapositiva en la presentación?

Gracias de antemano!!!

OriginalEl autor HotDogCannon | 2014-01-08

1 Comentario

  1. 10

    Todos sus diseños personalizados se puede acceder a través de VBA a través de la CustomLayoutscolección de la SlideMaster de la propiedad de un Presentation objeto. Cuando se crea un diseño personalizado, darle un nombre significativo. A continuación, puede recuperar a partir de la CustomLayouts colección. Parece que Microsoft no implementar la búsqueda por nombre, por lo que tendrá que recorrer la colección para encontrar la CustomLayout objeto con el nombre correcto.

    Una vez que usted tenga una referencia a la deseada CustomLayout objeto, se utiliza el AddSlide método de la Slides de la colección, que lleva un CustomLayout objeto como el segundo de los argumentos (como opuesto a Slides.Add, que se utiliza en su pregunta, y que toma un PpSlideLayout valor de enumeración).

    A continuación es un método auxiliar para obtener un diseño personalizado por su nombre, y el ejemplo de su uso tal y como quería:

    Public Function GetLayout( _
        LayoutName As String, _
        Optional ParentPresentation As Presentation = Nothing) As CustomLayout
    
        If ParentPresentation Is Nothing Then
            Set ParentPresentation = ActivePresentation
        End If
    
        Dim oLayout As CustomLayout
        For Each oLayout In ParentPresentation.SlideMaster.CustomLayouts
            If oLayout.Name = LayoutName Then
                Set GetLayout = oLayout
                Exit For
            End If
        Next
    End Function
    
    Sub AddCustomSlide()
        Dim oSlides As Slides, oSlide As Slide
        Set oSlides = ActivePresentation.Slides
        Set oSlide = oSlides.AddSlide(oSlides.Count + 1, GetLayout("Smiley"))
    End Sub

    OriginalEl autor Joshua Honig

Dejar respuesta

Please enter your comment!
Please enter your name here