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

时间:2010-11-02 17:17:17

标签: vba powerpoint powerpoint-vba

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

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

我发现可能做我想要的唯一另一种方法是在幻灯片上将“命名”形状设置为空并以编程方式将日期填入其中......但这会为构建滑动并且通常更加混乱。但是我愿意接受其他可能性。

谢谢!

- 编辑 -

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

1 个答案:

答案 0 :(得分:3)

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

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

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

  1. 强制关闭/重新开启你的 PowerPoint套牌(这是一个糟糕的 解决方案,但我不得不提到它。)
  2. 不要使用DateTime字段 你去过。我的意思是 手动控制日期/时间。 您仍然可以使用插入日期/时间, 但管理它所在的文本框 插入,以便你删除是什么 在该文本框中重新填充它 每个都有一个新的.InsertDateTime 你需要它的时间,比如之前 Slide.Export你在做什么。