Добавить слайд в раздел - PullRequest
1 голос
/ 07 января 2020

Я пытаюсь добавить слайд, созданный с помощью приведенного ниже кода, в указанный раздел c, который называется «Индекс».

В настоящее время он собирается на два слайда ниже последнего, но из-за количества слайды будут цепочкой. Я не могу ссылаться с помощью функции -2, поэтому мне приходится прибегать к ссылкам на секции.

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 - 2, GetLayout("Processwindow"))
End Sub

1 Ответ

0 голосов
/ 07 января 2020

Решение состоит в том, чтобы использовать метод .MoveToSectionStart объекта Slide.

В вашей подпрограмме AddCustomSlide добавьте одну строку:

Sub AddCustomSlide()
    Dim oSlides As Slides, oSlide As Slide
    Set oSlides = ActivePresentation.Slides
    Set oSlide = oSlides.AddSlide(oSlides.Count - 2, GetLayout("Title Only"))
    oSlide.MoveToSectionStart GetSectionNumber("Index")
End Sub

Так как вам нужен номер раздела «Индекс», я написал быструю функцию для возврата этого числа:

Private Function GetSectionNumber( _
        ByVal sectionName As String, _
        Optional ParentPresentation As Presentation = Nothing) As Long

    If ParentPresentation Is Nothing Then
        Set ParentPresentation = ActivePresentation
    End If

    GetSectionNumber = -1
    With ParentPresentation.SectionProperties
        Dim i As Long
        For i = 1 To .Count
            If .Name(i) = sectionName Then
                GetSectionNumber = i
                Exit Function
            End If
        Next i
    End With
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...