如何更改 powerpoint 幻灯片母版中的特定文本框
How to change a specific textbox in a powerpoint slide master
我有一个 powerpoint,它在母版幻灯片上使用了不同的母版布局。每次我们进行更新时,需要更新特定母版幻灯片上的特定文本框。我想用宏来做。
IE 我有一个幻灯片母版,其中有一个通用 Title_Slide 和下面的 2 个变体。它有一个 "Generic Bullet_slide",下面有 10 个变体。
在 "Generic Bullet_Slide" 上有一个包含两行的文本框:
"CONFIG. MGR: [your name], [your code], [your phone #]"
"FILE NAME: [name of file]"
每次我们将项目发送出去,我们都需要手动更新[]中的字段。如果我们忘记了它的坏消息。
我已经了解了如何遍历所有幻灯片,然后遍历所有形状以查找文本框。我能找到一个专门有这些词的盒子吗("CONFIG. MGR:" 和 "FILE NAME:")?
我可以只搜索 "layout" 张幻灯片吗?如何定位布局幻灯片而不是普通幻灯片上的任何内容?
非常感谢。
您可以使用名为 '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' 等变量。
我有一个 powerpoint,它在母版幻灯片上使用了不同的母版布局。每次我们进行更新时,需要更新特定母版幻灯片上的特定文本框。我想用宏来做。
IE 我有一个幻灯片母版,其中有一个通用 Title_Slide 和下面的 2 个变体。它有一个 "Generic Bullet_slide",下面有 10 个变体。
在 "Generic Bullet_Slide" 上有一个包含两行的文本框: "CONFIG. MGR: [your name], [your code], [your phone #]" "FILE NAME: [name of file]"
每次我们将项目发送出去,我们都需要手动更新[]中的字段。如果我们忘记了它的坏消息。
我已经了解了如何遍历所有幻灯片,然后遍历所有形状以查找文本框。我能找到一个专门有这些词的盒子吗("CONFIG. MGR:" 和 "FILE NAME:")?
我可以只搜索 "layout" 张幻灯片吗?如何定位布局幻灯片而不是普通幻灯片上的任何内容?
非常感谢。
您可以使用名为 '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' 等变量。