我有一个PowerPoint,它在幻灯片母版上使用不同的母版版式。每次我们进行更新时,特定主幻灯片上的特定文本框都需要更新。我想通过宏来实现。
IE我有一个带有通用Title_Slide的幻灯片母版,并带有2个变体。它有一个“通用Bullet_slide”,其下有10个变体。
“ Generic Bullet_Slide”上有一个包含两行的文本框: “ CONFIG。MGR:[您的姓名],[您的代码],[您的电话号码]” “文件名:[文件名]”
每次发送项目时,我们都需要手动更新[]中的字段。如果我们忘记了它的坏消息。
我已经看到了如何遍历所有幻灯片,然后遍历所有形状以查找文本框。我可以找到一个专门包含这些单词的框(“ CONFIG。MGR:”和“ FILE NAME:”)吗?
我只能搜索“版式”幻灯片吗?如何定位布局幻灯片而不是普通幻灯片?
感谢一堆。
答案 0 :(得分:1)
您可以使用名为“ ActivePresentation.Designs(x).SlideMaster.CustomLayouts”的对象来访问SlideMaster Designs中的每个自定义布局幻灯片。 (一个演示文稿中可以有多个设计。)
访问自定义布局幻灯片中的子对象就像处理普通幻灯片中的子对象一样。
我认为您可以尝试以下自动化代码:
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'。