如何更新PowerPoint幻灯片中所有日期/时间数值(VBA)

5
我正在编写一个PPT插件,它可以制作幻灯片的PNG图像并上传到某个地方。我希望幻灯片创建者能够在文本框中添加日期/时间(使用插入 > 日期和时间),并且这些日期/时间要反映快照被拍摄时的时间。
如果在添加它们时勾选了“自动更新”,那么时间戳仅在幻灯片打开时更新。有没有办法找到所有形状中的日期/时间标签/字段,并强制它们在我拍摄快照之前立即更新?
我发现实现我想要的可能唯一的另一种方法是在幻灯片上有“命名”的形状,这些形状为空并以编程方式填充日期...但这会增加建立幻灯片的人的复杂性,而且通常比较混乱。但如果有其他选择,我也很愿意尝试。
谢谢!
-编辑-
好吧,我刚才意识到当我使用SaveGraphic创建PNG时,PNG中的时间戳会更新!所以这可能就是我绝对需要的全部内容。有趣的是,用户在屏幕上看到的日期时间戳不会更新,这可能会让用户感到困惑。因此,问题仍然存在...看起来应该可以解决。
1个回答

2

很抱歉,你无法更新日期和时间字段。该字段(作为页脚或来自例如 TextRange.InsertAfter.InsertDateTime DateTimeFormat:=ppDateTimeMMddyyhmmAMPM, InsertAsField:=msoTrue 的输入)的工作方式如下:

仅在幻灯片演示窗口中运行幻灯片时,DateTime 才会更新。当退出该幻灯片演示窗口后,您将看到插入字段或打开演示文稿时的早期日期/时间。当打开演示文稿或第一次插入时,该字段会在编辑窗口中更新。

处理此类情况只有两种方法:

  1. 强制关闭/重新打开 PowerPoint 演示文稿(这是一种可怕的解决方案,但我不得不提及它)。
  2. 不要像以前那样使用 DateTime 字段。我的意思是手动控制日期/时间。您仍然可以使用“插入日期/时间”,但需要管理插入它的文本框,以便每次需要时删除其中的内容并重新填充一个新的 .InsertDateTime,例如在执行 Slide.Export 之前。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接