Результат FormField возвращает пустой в макросе после значения, введенного в шаблоне слова
У меня есть файл шаблона Microsoft Word 2010 с несколькими полями формы. В верхней части находятся три элемента: "Название проекта", "Расположение проекта" и "Номер проекта". Я намерен перехватить встроенный макрос FileSave и объединить значения трех полей, упомянутых выше, чтобы предложить имя файла в диалоге сохранения. Мой код состоит из:
Sub FileSave()
With Dialogs(wdDialogFileSaveAs)
.Name = ThisDocument.FormFields("ProjectNumber").Result & _
ThisDocument.FormFields("ProjectName").Result & _
ThisDocument.FormFields("ProjectLocation").Result
.Show
End With
End Sub
Когда я заполняю три поля и нажимаю Ctrl + S, действительно появляется диалоговое окно сохранения, но имя файла пустое. После дальнейшего изучения в окне Immediate я могу обратиться к этим полям, но их свойство Result всегда возвращает пустую строку. Таким образом, имя файла в диалоговом окне выглядит пустым. Я могу сослаться на логические свойства, свойство Type и т. Д. И показать, что в MsgBox через окно Immediate я просто не могу заставить его вернуть что-либо для Result. У кого-нибудь есть идея, почему это может быть?
1 ответ
Таким образом, похоже, что ответ на этот вопрос закончился так: я все еще работал в шаблонном документе, а не в документе с поддержкой макросов. Для шаблонов во время выполнения макроса поля в документе не содержат значений. Чтобы макросы могли использовать значения, введенные в поля формы, это должен быть документ, а не шаблон. Надеюсь, что это поможет любому в поисках ответа на этот вопрос.