VBA用于大写标题幻灯片

时间:2015-12-23 19:30:22

标签: vba powerpoint

我想使用VBA来大写我所有PowerPoint幻灯片标题中的每个单词。

到目前为止,这是我正在使用的代码:

Sub Capitalize()
    Dim sld As Slide

    For Each sld In ActivePresentation.Slides
            sld.Title.TextFrame.TextRange.ChangeCase ppCaseTitle
        Next sld
End Sub

通过突出显示“标题”并说“找不到方法或数据成员”来给我一个错误

非常感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

Slide对象没有Title属性。您需要查找包含标题文本的Shape对象。

迭代.Shapes集合并使用其Name知道您何时找到包含您的标题的那个(然后您可以退出循环播放)。

这假设您已经命名了标题形状"标题"什么的。

Dim sld As Slide, shp As Shape
Dim found As Boolean
For Each sld In ActivePresentation.Slides
    For Each shp In sld.Shapes
        If shp.Name = "Title" Then
            found = True
            shp.TextFrame.TextRange.ChangeCase ppCaseTitle
        End If
        If found Then Exit For
    Next
    If found Then Exit For
Next

答案 1 :(得分:1)

Shapes对象上提供了Title对象,该对象映射到幻灯片的占位符标题。我还会使用HasTitle属性来检查幻灯片是否有标题。

Sub Capitalize()
Dim sld As Slide

For Each sld In ActivePresentation.Slides
    If sld.Shapes.HasTitle Then
        sld.Shapes.Title.TextFrame.TextRange.ChangeCase ppCaseTitle
    End If
Next sld
End Sub