Как обновить все значения даты / времени на слайде PowerPoint (VBA) - PullRequest
4 голосов
/ 02 ноября 2010

Я пишу надстройку PPT, которая делает PNG слайда и загружает его куда-нибудь.Я хочу, чтобы создатель слайдов мог добавлять даты / время в текстовые поля (используя «Вставка»> «Дата и время»), и чтобы эти даты / время отражали время, когда был сделан снимок.

Если установлен флажок «Обновить»Автоматически »при их добавлении временные метки обновляются только при открытии слайда.Есть ли способ найти все теги / поля даты / времени во всех фигурах и заставить их обновиться непосредственно перед тем, как я сделаю снимок?

Единственный способ найти то, что я хочу, -иметь «именованные» фигуры на слайде, которые пусты и заполняют в них дату программным способом ... но это создает дополнительную сложность для человека, создающего слайд, и, как правило, более запутанно.Но я открыт для других возможностей, если таковые имеются.

Спасибо!

-EDIT-

Хорошо, я только что понял, что когда я создаю PNG с SaveGraphic, временные метки вPNG обновлены!Так что, вероятно, это все, что мне абсолютно необходимо .Интересно, что даты, на которые пользователь смотрит на экран, не обновляются, что потенциально может сбить пользователя с толку.Таким образом, вопрос все еще стоит ... кажется, что это должно быть выполнимо.

1 Ответ

3 голосов
/ 02 ноября 2010

Что ж, плохие новости в том, что ты не можешь.Поле (либо в качестве нижнего колонтитула, либо в поле ввода, например, TextRange.InsertAfter.InsertDateTime DateTimeFormat:=ppDateTimeMMddyyhmmAMPM, InsertAsField:=msoTrue) работает следующим образом:

DateTime будет обновляться, когда вы запускаете панель слайдов только в окне слайд-шоу.При выходе из этого окна показа слайдов вы увидите более раннюю дату / время, когда поле было либо вставлено, либо открыта презентация.Поле обновляется в окнах редактирования, когда презентация открывается или вставляется в первый раз.

Существует только два способа справиться с такой ситуацией:

  1. Принудительное закрытие / повторное открытиевашей колоды PowerPoint (это ужасное решение, но я должен был упомянуть об этом).
  2. Не используйте поле DateTime, как вы были.Под этим я подразумеваю контроль даты / времени вручную.Вы по-прежнему можете использовать вставку даты / времени, но управляйте текстовыми полями, в которые они вставлены, так что вы удаляете то, что находится в этом текстовом поле, и заново заполняете его новым .InsertDateTime каждый раз, когда вам это нужно, например, перед Slide.Exportвы делаете.
...