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

S'p*_*'Kr 5 powerpoint vba

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

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

我发现可能做我想做的唯一另一种方法是在幻灯片上有“命名”形状,这些形状是空的,并以编程方式将日期填充到它们中……但这会给构建幻灯片的人带来额外的复杂性,并且是一般比较乱。但如果有的话,我对其他可能性持开放态度。

谢谢!

-编辑-

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

Tod*_*ain 2

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

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

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

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