如何获取章节标题并更改章节中幻灯片的标题?

时间:2019-04-04 22:27:19

标签: vba powerpoint powerpoint-vba

我正在VBA中编写脚本,以将幻灯片的标题更改为部分标题。我有多个部分,但我想遍历ppt以将幻灯片的所有标题更改为与该部分具有相同的部分标题。

我试图找到如何获取章节标题并将其设置为幻灯片标题的方法。

Sub test()

ActivePresentation.Slides.Name = ActivePresentation.SectionProperties(sectionName)


End Sub

我需要添加迭代,我需要语法混乱。

1 个答案:

答案 0 :(得分:0)

希望您正在寻找以下类似的东西。代码

  1. 遍历ActivePresentation中的每张幻灯片,并添加标题(如果还没有标题的话)。
  2. 通过获取幻灯片的sectionIndex属性来更改标题文本,然后在SectionProperties.Name方法中使用该索引来检索相应的文本。

Sub ChangeMyTitles()
    Dim sld As Slide
    Dim titleShape As Shape

    If ActivePresentation.SectionProperties.Count = 0 Then Exit Sub

    For Each sld In ActivePresentation.Slides
        With sld
            If Not .Shapes.HasTitle Then
                Set titleShape = .Shapes.AddTitle
            Else
                Set titleShape = .Shapes.Title
            End If

            titleShape.TextFrame2.TextRange.Text = ActivePresentation.SectionProperties.Name(.sectionIndex)
        End With
    Next sld
End Sub

编辑:

如果您要修改与标题不同的占位符,则可以执行以下操作。根据您的屏幕截图,我假设您要修改的占位符是第三个(标题是第1个,正文是第2个,章节是第3个),但是您可能必须更改下面的3

Sub ChangeMyChapters()
    Dim sld As Slide
    Dim chapterShape As Shape

    If ActivePresentation.SectionProperties.Count = 0 Then Exit Sub

    For Each sld In ActivePresentation.Slides
        With sld
            Set chapterShape = .Shapes.Placeholders(3)
            chapterShape.TextFrame2.TextRange.Text = ActivePresentation.SectionProperties.Name(.sectionIndex)
        End With
    Next sld
End Sub