Как изменить конкретное текстовое поле в мастере слайдов PowerPoint
У меня есть PowerPoint, который использует разные макеты мастера на мастер слайдов. Каждый раз, когда мы делаем обновление, необходимо обновить определенное текстовое поле на определенных основных слайдах. Я хотел бы сделать это с помощью макроса.
Т.е. у меня есть мастер слайдов с общим названием Title_Slide и двумя вариациями под него. У этого есть "Общий Bullet_slide" с 10 изменениями под этим.
на "Общей странице Bullet_Slide" есть текстовое поле, содержащее две строки: "CONFIG. MGR: [ваше имя], [ваш код], [ваш номер телефона]" "" ИМЯ ФАЙЛА: [имя файла] "
каждый раз, когда мы отправляем проект, нам нужно обновлять поля в [] вручную. Если мы забудем его плохие новости.
Я видел, как перебрать все слайды, а затем все формы, чтобы найти текстовые поля. Могу ли я найти коробки, в которых есть эти слова ("CONFIG. MGR:" и "FILE NAME:")?
Могу ли я искать только слайды с "макетом"? как нацелить что-либо на слайд макета вместо обычного слайда?
огромное спасибо.
1 ответ
Вы можете использовать объект с именем "ActivePresentation.Designs(x).SlideMaster.CustomLayouts" для доступа к каждому слайду пользовательского макета в конструкциях SlideMaster. (Вы можете иметь более 1 дизайна в презентации.)
Доступ к подобъектам на слайдах с пользовательским макетом аналогичен работе с обычными слайдами.
Я думаю, что вы можете попробовать следующий код автоматизации:
Option Explicit
Option Compare Text 'Ignore Upper/Lower case
Sub UpdateCustomLayouts()
Dim DSN As Design
Dim CL As CustomLayout
Dim shp As Shape
Dim mName As String, mCode As String, mPhone As String, fName As String
'First, change following variables before running this macro
mName = "Your name"
mCode = "Your code"
mPhone = "0123456789"
fName = ActivePresentation.Name
'Loop each customlayouts
For Each DSN In ActivePresentation.Designs
For Each CL In DSN.SlideMaster.CustomLayouts
For Each shp In CL.Shapes
If shp.HasTextFrame Then
'find and update textboxes
With shp.TextFrame.TextRange
If .Text Like "CONFIG. MGR:*" Then
.Text = "CONFIG. MGR: " & mName & ", " & mCode & ", " & mPhone
ElseIf .Text Like "FILE NAME:*" Then
.Text = "FILE NAME: " & fName
End If
End With
End If
Next shp
Next CL
Next DSN
End Sub
Как я уже говорил, сначала измените переменные, такие как "mName, mCode, mPhone, fName", прежде чем запускать.