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

如何更新PowerPoint幻灯片(VBA)中的所有日期/时间值,vba,powerpoint,Vba,Powerpoint,我正在写一个PPT插件,它可以制作幻灯片的PNG并上传到某个地方。我希望幻灯片创建者能够在文本框中添加日期/时间(使用“插入>日期和时间”),并使这些日期/时间反映拍摄快照的时间 如果在添加时选中“自动更新”,则时间戳仅在幻灯片打开时更新。有没有办法找到所有形状的所有日期/时间标记/字段,并在拍摄快照之前立即强制更新它们 我发现的唯一一种可能实现我想要的功能的方法是在幻灯片上有“命名”的形状,这些形状是空的,并以编程方式将日期填充到其中……但这会给制作幻灯片的人带来额外的复杂性,而且通常更为混乱

我正在写一个PPT插件,它可以制作幻灯片的PNG并上传到某个地方。我希望幻灯片创建者能够在文本框中添加日期/时间(使用“插入>日期和时间”),并使这些日期/时间反映拍摄快照的时间

如果在添加时选中“自动更新”,则时间戳仅在幻灯片打开时更新。有没有办法找到所有形状的所有日期/时间标记/字段,并在拍摄快照之前立即强制更新它们

我发现的唯一一种可能实现我想要的功能的方法是在幻灯片上有“命名”的形状,这些形状是空的,并以编程方式将日期填充到其中……但这会给制作幻灯片的人带来额外的复杂性,而且通常更为混乱。但如果有其他的可能性,我也愿意

谢谢

-编辑-


好的,我刚刚意识到当我用SaveGraphic创建PNG时,PNG中的时间戳会被更新!所以这可能是我绝对需要的。有趣的是,用户在屏幕上看到的日期戳没有更新,这可能会让用户感到困惑。所以问题仍然存在……似乎这应该是可行的。

好吧,坏消息是你不能。该字段(作为页脚或来自例如
TextRange.InsertAfter.InsertDateTime datetimetimeformat:=ppDateTimeMMddyyhmmAMPM,InsertAsField:=msoTrue
)的输入)的工作方式如下:

只有在幻灯片放映窗口中运行幻灯片组时,日期时间才会更新。退出该幻灯片放映窗口时,您将看到插入字段或打开演示文稿的较早日期/时间。首次打开或插入演示文稿时,编辑窗口中的字段将更新

处理这种情况只有两种方法:

  • 强制关闭/重新打开您的 PowerPoint deck(这是一个可怕的 解决方案,但我必须提到它)
  • 不要这样使用DateTime字段 你一直是。我的意思是 手动控制日期/时间。 您仍然可以使用插入日期/时间, 但要管理文本框所在的位置 插入,以便删除所插入的内容 然后重新填充它 使用新的
    .InsertDateTime
    每个 你需要它的时间,比如
    幻灯片。导出您正在执行的操作