Как выбрать слайды в ppt, которые имеют одинаковый пользовательский макет, или содержат заданную форму или текст? - PullRequest
1 голос
/ 09 марта 2020

Есть ли способ в VBA выбрать все слайды в активном ppt do c, которые используют заданный пользовательский макет?

CustomLayout.Name=”1_separator”   
CustomLayout.Index=”1”  

До сих пор я играл с этой идеей:

For Each CustomLayout In ActivePresentation.SlideMaster.CustomLayouts
If CustomLayout.Name = "1_Separator" Then  
ActivePresentation.Slides.Range.Select  
Exit For  
End If  
Next  
End Sub

Тем не менее, он выбирает все слайды в ppt (не только слайды с «1_separator»), поэтому это не то, что мне нужно.

Моя общая цель - создать автоматизированную таблицу Содержание в ppt, для этого я бы хотел выбрать конкретные слайды с макросом.

В качестве альтернативы, я мог бы поместить на слайды форму или заданное текстовое поле c, на основе которого я собираюсь создать оглавление. Но я не знаю код для выбора слайдов с данной формы или текста, либо.

Буду благодарен за любую помощь в этом.

1 Ответ

0 голосов
/ 09 марта 2020
Sub SelectSlidesWithGivenCustomLayout()

    Dim slidesToSelect(999)
    Dim currentSlide As Slide
    Dim counter As Integer
    counter = 0

    For Each currentSlide In ActivePresentation.Slides
        If currentSlide.CustomLayout.Name = "1_Separator" Then
            slidesToSelect(counter) = currentSlide.SlideIndex
            counter = counter + 1
        End If
    Next

    ActivePresentation.Slides.Range(slidesToSelect).Select

End Sub
...