繁体   English   中英

如何在MS Power Point演示文稿的一张主幻灯片中添加自定义文本占位符,并为每张幻灯片使用VBA脚本对其进行访问?

[英]How to add a custom Text placeholder in one of the master slides in MS Power Point presentation and access it using VBA Script for each slide?

我在Power Point演示文稿中的一张幻灯片上创建了一个自定义占位符,即“文本框类型”的“ CustomHeader”。 如何遍历将演示文稿标题插入此占位符的所有幻灯片。

我有以下代码,该代码在页脚中以自定义格式输入页面编号。 它还将Section插入到幻灯片的页脚中。 我想在CustomHeader占位符中为每个匹配的幻灯片输入一些内容。

Sub SecFootNew()

Dim oshp As Shape
Dim b_found As Boolean
If ActivePresentation.SectionProperties.Count > 0 Then


Dim osld As Variant

For iSlide = 1 To ActivePresentation.Slides.Count
    ' Need Help with These
    With ActivePresentation.Slides(2).Shapes.Placeholders(CustomHeader).TextFrame.TextRange
        .Text = "Happy Honika"
    End With

    ' The Following portion of the code is working Perfectly
    If iSlide <> 1 Then
        Set osld = ActivePresentation.Slides(iSlide)

        ' Configure Display of Page Number
        With osld.HeadersFooters.DateAndTime
            .Visible = False ' True For making the Date Visible
'            .UseFormat = True
'            .Format = ppDateTimedMMMyy
        End With

        ' Configure Footer
        osld.HeadersFooters.Footer.Visible = True
        osld.HeadersFooters.SlideNumber.Visible = True

        For Each oshp In osld.Shapes
        If oshp.Type = msoPlaceholder Then
            If oshp.PlaceholderFormat.Type = ppPlaceholderFooter Then
                With oshp.TextFrame.TextRange
                    .Font.Name = "Calibri"
                    .Font.Size = 12
                    .Font.Color = RGB(255, 255, 255)
                    .Text = ActivePresentation.SectionProperties.Name(osld.sectionIndex)
                End With
            End If
            If oshp.PlaceholderFormat.Type = ppPlaceholderSlideNumber Then
                With oshp.TextFrame.TextRange
                    .Font.Name = "Calibri"
                    .Font.Size = 12
                    .Font.Color = RGB(255, 255, 255)
                    .Text = "Slide " & CStr(osld.SlideIndex) & " of " & CStr(ActivePresentation.Slides.Count)
                End With
            End If
        End If

        Next oshp
    End If
Next iSlide
End If
End Sub

由于您无法在幻灯片上添加占位符,因此我想您是指已在“幻灯片母版”中的“自定义布局”中添加了一个文本占位符,并且已将该占位符重命名为“ CustomHeader”。

将基于该布局的幻灯片添加到演示文稿后,您的占位符将不再称为“ CustomHeader”。 而是将其称为“文本占位符3”。 因此,您的首要任务是查找PowerPoint在插入时为您的占位符提供的名称。

然后,您可以在循环中简单地包含一个额外条件:

if oshp.Name = "Text Placeholder #" then _
    oshp.TextFrame.TextRange.Text = "Happy Honika"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM