使用Office 2016 PPT,在共享PPT文件并从某人取回它之后,它现在已在幻灯片上保留了标题,但它们现在是“ TextShape 1”,并且位于正确的位置(幻灯片顶部),并且可以不会在大纲视图中显示为标题等。仅重置幻灯片会覆盖空白框...没有太大帮助。到目前为止,一些网络搜索尚未解决此问题。
由于我是Powerpoint的新手,请举例说明在活动演示文稿中最简单的vba方式,使每张幻灯片上的“ TextShape 1”被视为各个幻灯片的标题?重新定义?添加内容为“ TextShape 1”的新标题框,并删除旧框?
谢谢。
答案 0 :(得分:0)
感谢您的意见。
作为vba-powerpoint初学者,很难通过集合和术语找到我的方式,当然也很费时间,但是我针对出现的有限问题写了一个解决方案。
您可能会认为您可以添加标题对象,但是至少按照我尝试的方式,它抱怨说当前的幻灯片布局无法做到这一点。我不知道如何将文本框指定为标题。因此,我使用vba将没有幻灯片的幻灯片的格式设置为Titleonly,将文本复制到其中,然后删除了新形状覆盖的旧形状,如下所示:
Attribute VB_Name = "Module1"
Sub newtitles()
Dim s As Variant
For s = 1 To ActivePresentation.Slides.Count
If Not ActivePresentation.Slides(s).Shapes.HasTitle Then
ActivePresentation.Slides(s).Layout = ppLayoutTitleOnly
' adds a title placeholder too; could not .addtitle to slide without a title in format
ActivePresentation.Slides(s).Shapes.Title.TextFrame.TextRange.Text = ActivePresentation.Slides(s).Shapes(1).TextFrame.TextRange.Text
ActivePresentation.Slides(s).Shapes(1).Delete ' remove redundant box
End If 'about title
Next ' slides
End Sub