Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Запускать макрос автоматически при сохранении в Word

Автор вопроса: njr101Ответов: 2

У меня есть макрос, который обновляет все поля в документе (эквивалент выполнения F9 для полей). Я хотел бы запускать этот макрос автоматически, когда пользователь сохраняет документ.

В параметрах я могу выбрать "обновлять поля при печати документа", но это не то, что я хочу. В редакторе VBA я нахожу события только для события Document_Open(), а не для события Document_Save().

Можно ли заставить макрос срабатывать, когда пользователь сохраняет документ?

Пожалуйста, обрати внимание:

  1. Это Word 97. Я знаю, что это возможно в более поздних версиях Word.
  2. Я не хочу заменять стандартную кнопку "Сохранить" на панели инструментов кнопкой для запуска собственного макроса. Замена кнопки на панели инструментов применяется ко всем документам, и я хочу, чтобы она влияла только на этот документ.

Чтобы понять, зачем мне это нужно, документ содержит поле "SaveDate", и я хотел бы, чтобы это поле обновлялось на экране, когда пользователь нажимает "Сохранить". Так что, если вы можете предложить другой способ добиться этого, то это было бы так же хорошо.

vbams-officems-word

Ответы

Ответ 1 · рейтинг 1 · Dirk Vollmar

Да, Фенклифф прав, вам не повезло с Word 97.

Если обновление не вариант, единственное, что приходит мне в голову, это опрос времени последней модификации файла с помощью таймера. Я знаю, что это некрасиво, но вы не получаете события, и нет команды Word, которую вы могли бы переопределить.

Ответ 2 · рейтинг 1 · jevakallio

Насколько я помню о Word 97, тебе не повезло. Единственными документальными событиями в 1997 году были Open и Close.

У меня нет Word 97, но в Word 2000+ вы можете установить поле, которое считывает свойство документа. Вы могли бы проверить это. В Word 2003 он находится в разделе Вставка > Поле..., а тот, который вы ищете, называется SaveDate.

Редактировать: D'Uh. Вы это уже знали. Неправильно понял вашу проблему. Извинения.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы