Обновите нижние колонтитулы всех образцов слайдов и макетов - PullRequest
0 голосов
/ 29 мая 2020

Попытка создать макрос для быстрого ввода названий проектов в нижние колонтитулы ppt. Я могу только заставить мастер слайдов верхнего уровня принять введенный заголовок. Я пробовал перебирать другие макеты мастер-слайдов с новой информацией о нижнем колонтитуле, но я продолжаю получать ошибки в строке для записи текста в нижний колонтитул в For l oop


    Sub footchange()

    Dim myValue As Variant
    Dim sld As Slide

    myValue = InputBox("Enter Presentation Name")

    Set mySlidesHF = ActivePresentation.SlideMaster.HeadersFooters

    'Add name to slide master footer
    With mySlidesHF
        .Footer.Visible = True
        .Footer.Text = myValue + "    |   Confidential © 2020"
        .SlideNumber.Visible = True  
    End With

    'Add name to slide master layouts footers
    For Each sld In ActivePresentation.Slides
       With sld.HeadersFooters
            .Footer.Visible = True 
            .Footer.Text = myValue + "    |   Confidential © 2020"
            .SlideNumber.Visible = True
        End With
    Next

Ответы [ 2 ]

0 голосов
/ 01 июня 2020

Мне удалось обновить все мастер-слайды / макеты, добавив второй вложенный l oop для макетов на каждом мастер-слайде:

Sub footchange()

Dim myValue As Variant
Dim sld As Slide

'Add design and layout variables
Dim oMaster As Design
Dim cLay As CustomLayout

myValue = InputBox("Enter Presentation Name")

'Just to show you how many Masters you have
Debug.Print ActivePresentation.Designs.Count

'Loop through them
For Each oMaster In ActivePresentation.Designs

'Use actual Design
Set mySlidesHF = oMaster.SlideMaster
Set myLayoutsHF = oMaster.SlideMaster.CustomLayouts


'Add name to slide master footer
With mySlidesHF.HeadersFooters
    .Footer.Visible = True
    .Footer.Text = myValue + "    |   Confidential © 2020"
    .SlideNumber.Visible = True
End With

'Add name to layouts
For Each cLay In myLayoutsHF
    With cLay.HeadersFooters
        .Footer.Visible = True
        .Footer.Text = myValue + "    |   Confidential © 2020"
        .SlideNumber.Visible = True
    End With
Next cLay

Next oMaster


End Sub
0 голосов
/ 29 мая 2020

Вы можете получить доступ к другим мастерам через свойство DESIGN: https://docs.microsoft.com/en-us/office/vba/api/powerpoint.design

Этот код должен помочь вам начать работу. Пожалуйста, дайте отзыв, если у вас возникнут проблемы. (отступы сохранены от рецензентов для лучшего понимания) :

Dim myValue As Variant
Dim sld As Slide

'Insert a Design Variable
Dim oMaster As Design

myValue = InputBox("Enter Presentation Name")

'Just to show you how many Masters you have
Debug.Print ActivePresentation.Designs.Count

'Loop through them
For Each oMaster In ActivePresentation.Designs

'Use actual Design
Set mySlidesHF = oMaster.SlideMaster.HeadersFooters

'Add name to slide master footer
With mySlidesHF
    .Footer.Visible = True
    .Footer.Text = myValue + "    |   Confidential © 2020"
    .SlideNumber.Visible = True
End With

'Another approach would be to change the footer on each slide manually
For Each sld In ActivePresentation.Slides
   With sld.HeadersFooters
        .Footer.Visible = True
        .Footer.Text = myValue + "    |   Confidential © 2020"
        .SlideNumber.Visible = True
    End With
Next

Next 'oMaster
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...