Помимо простой вставки и синтаксического анализа текста в пустое поле Word, есть ли способ программно создавать пользовательские поля и коды полей в моих собственных шаблонах с помощью VBA? Кроме того, есть ли способ сделать эти поля отображаемыми в списке доступных полей?
Создание полей Word
Ответы (2)
Недавно я разработал решение, в котором использовались типы полей Word MACROBUTTON и ADDIN.
Я нашел MACROBUTTON полезным, потому что третья запись внутри поля с разделителями-пробелами (программно field.code.text) отображается в Word. Это позволяет моим пользователям наблюдать за полями, когда они перемещаются. { MACROBUTTON NoMacro * } будет отображать «*» в Word, например. И он ничего не сделает, когда пользователь дважды щелкнет по нему, потому что я намеренно не определил макрос с именем «NoMacro».
Поле ADDIN не отображается (за исключением случаев, когда отображение кодов полей включено) и сохраняет скрытую строку в своем свойстве field.data. Используя это поле, я мог бы иметь скрытое поле, содержимое которого не могло быть просмотрено или изменено пользователями (за исключением того, что если они включат «показывать коды полей», они могут видеть, что это поле ADDIN (но они не могут видеть/редактировать свойство data), и что они могут удалить это поле, как и любое другое поле.)
Я нашел эти страницы полезными:
Что ты имел в виду? Пользовательские свойства документа можно добавлять вручную или с помощью VBA. Это доступные поля в разделе DOCPROPERTY:
{ DOCPROPERTY "Test" \* MERGEFORMAT }
Вы можете использовать макрос, чтобы убедиться, что пользовательское свойство добавлено в документы:
Sub AutoNew()
Dim objCustomProperties As DocumentProperties
Set objCustomProperties = ActiveDocument.CustomDocumentProperties
objCustomProperties.Add Name:="Test", _
Type:=msoPropertyTypeString, Value:="Blah", _
LinkToContent:=False
End Sub
Дополнительная информация
Автомакросы: http://msdn.microsoft.com/en-us/library/aa263747(office.10).aspx
Общие сведения о свойствах настраиваемых документов в Microsoft Office Word 2003: http://msdn.microsoft.com/en-us/library/aa537154.aspx