Автор Тема: Авто выполнение макроса при изменении свойства документа  (Прочитано 32 раз)

Оффлайн Uiaulamig

  • Посетитель форума
  • Сообщений: 1
Добрый день.
Есть задумка - выводить в нижний колонтитул документа вручную заданную "версию" документа из стандартных свойств документа. Что пока удалось сделать:
1) В свойствах документа выбрал поле "Название" ("Title"), пишу версию документа вручную тогда когда мне это нужно.
2) В нижний колонтитул вывожу этот текст
3) При событиях - "открытие документа" (Private Sub Document_Open()) или "закрытие документа" (Private Sub Document_Close()) или "сохранении документа" (Sub FileSave()   ThisDocument.Save) произвожу обновление колонтитулов:
Dim oSection As Section
Dim HF As HeaderFooter
For Each oSection In ActiveDocument.Sections
   For Each HF In oSection.Headers
      HF.Range.Fields.Update
   Next HF
Next oSection
For Each oSection In ActiveDocument.Sections
   For Each HF In oSection.Footers
      HF.Range.Fields.Update
   Next HF
Next oSection

Пока всё более менее устраивает, но хотелось бы чтобы этот макрос автоматически выполнялся еще и сразу после того как я поменял свойство "Название" этого документа. Можно это как то отследить, вроде того как я отслеживаю "закрытие" или "сохранение" документа?

Заранее спасибо!

Оффлайн Администратор

  • Administrator
  • Сообщений: 2029
Написал вам два письма на почту с заголовком "Письмо с Форума по VBA, Excel и Word". Написал именно на почту, а не на форум.

Могу пока предложить такой способ: не вручную изменяйте свойство, а с помощью макроса: создайте макрос, в котором будет диалоговое окно с одним полем. Пользователь запускает макрос, появляется диалог, пользователь вводит в поле значение, щёлкает OK, значение записывается в свойство документа и макрос запускает ваш макрос.