VBA Powerpoint:循环浏览并重命名所有幻灯片

时间:2019-03-07 10:57:30

标签: powerpoint-vba

我希望在几个演示文稿中重命名所有幻灯片,以便我可以轻松识别它们。我将使用它们来构建其他演示文稿,并且需要一种方法来确定幻灯片是否来自某个先​​前的演示文稿。 当我尝试循环浏览幻灯片时,尝试重命名幻灯片时出现只读错误。如何访问和设置名称?当我尝试更改“名称”属性时,子失败。 非常感谢!

Sub EverySlideInPresentation1234(oPres作为演示文稿) '对当前活动演示文稿中的每张幻灯片执行一些操作

Dim oSl As slide

For Each oSl In oPres.Slides


    oSl.Name = (("updatePort: " & Now()))

Next oSl

结束子

1 个答案:

答案 0 :(得分:1)

我能够对此进行复制。问题在于Now()返回date + hh:mm:ss AM | PM,但是在重命名第一张幻灯片和下一张幻灯片之间相距不到一秒钟,因此您最终给出了...试图给出.. 。多个幻灯片具有相同的名称。 PowerPoint不允许这样做。

使用类似的方法使幻灯片名称唯一:

oSl.Name = (("updatePort: " & Now())) & " " & oSl.SlideIndex

或使用标签将数据存储在幻灯片本身上,而不使用名称。每张幻灯片可以包含一个具有相同值的标签:

oSl.Tags.Add "UpdateTag", "updatePort: " & Now()

在我维护的PowerPoint常见问题解答网站上,有关于使用标签的更多信息:

使用标签(以及有关功能的一些知识) http://www.pptfaq.com/FAQ00815_Working_with_Tags_-and_a_bit_about_Functions-.htm