0

我有一个在幻灯片母版上使用不同母版布局的 powerpoint。每次我们进行更新时,都需要更新特定母版幻灯片上的特定文本框。我想用宏来做。

IE 我有一个幻灯片母版,上面有一个通用 Title_Slide 和 2 个变体。它有一个“通用 Bullet_slide”,下面有 10 个变体。

在“Generic Bullet_Slide”上有一个包含两行的文本框:“CONFIG. MGR: [your name], [your code], [your phone #]” “FILE NAME: [name of file]”

每次我们将项目发送出去,我们都需要手动更新 [] 中的字段。如果我们忘记它的坏消息。

我已经看到如何遍历所有幻灯片,然后遍历所有形状以查找文本框。我能找到一个特别包含这些词的框(“CONFIG. MGR:”和“FILE NAME:”)吗?

我可以只搜索“布局”幻灯片吗?如何定位布局幻灯片上的任何内容而不是普通幻灯片?

谢谢一堆。

4

1 回答 1

3

您可以使用名为“ActivePresentation.Designs(x).SlideMaster.CustomLayouts”的对象来访问 SlideMaster 设计中的每个自定义布局幻灯片。(您可以在演示文稿中拥有多个设计。)

访问自定义布局幻灯片中的子对象就像处理普通幻灯片中的子对象一样。

我认为您可以尝试以下自动化代码:

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”。

于 2019-01-03T19:28:40.910 回答