Опираясь на код в вопросе и фоновый вопрос ...
Word может дублировать содержимое закладки, используя REF
коды полей.Поскольку поля формы также используют идентификаторы закладок, это будет работать как с существующими полями формы, так и с содержимым, добавленным в закладки.Поля REF могут быть вставлены напрямую, если человек знаком с этим ИЛИ, вставив перекрестную ссылку на закладку.
Обращаясь к обходному пути для вставки более 255 символов, в этом случае это будетТакже необходимо разместить закладку вокруг вставляемого диапазона и обновить поля REF
, чтобы они отражали содержимое закладки по всему документу.Модифицированный раздел кода приведен ниже.
'Declarations to be added at the beginning of the procedure
Dim fld As Word.Field
Dim bkmName As String
'Name of form field, bookmark to be added and text in REF field code
bkmName = "txtReasonforReward"
'Existing code
If doc.ProtectionType <> wdNoProtection Then
doc.Unprotect
End If
Set rng = doc.Bookmarks(bkmName).Range
rng.MoveStart wdCharacter, -1
x = rng.Characters.First
rng.FormFields(1).Delete
rng.Text = x & Me![Reason for Reward]
' New code
'Leave that single character out of the range for the bookmark
rng.MoveStart wdCharacter, 1
'Bookmark the inserted content
doc.Bookmarks.Add bkmName, rng
'Update fields so that REF's pick up the bookmark content
For Each fld In doc.Fields
If fld.Type = wdFieldRef Then
fld.Update
End If
Next
doc.Protect wdAllowOnlyFormFields, True
Этот подход будет немного громоздким, если его необходимо применить ко многим полям.Возможно, имеет смысл сделать что-то вроде записи имен закладок в свойство Tag
элементов управления в форме доступа, а затем зациклить элементы управления, чтобы выбрать имя закладки и данные из элемента управления, вместо того, чтобы записывать каждое из них явно - но этопросто мысль о будущем.
Все, что говорится, «современный» способ достичь этого - работать с элементами управления контентом, а не с полями / закладками формы.Элементы управления содержимым не имеют ограничения в 255 символов, документ может быть защищен как форма, несколько элементов управления содержимым могут иметь одинаковые заголовок (имя) и / или тег.Кроме того, элементы управления контентом могут быть «сопоставлены» с пользовательской XML-частью, хранящейся в документе, так что изменение содержимого одного из них приведет к изменению содержимого другого.Здесь я пытаюсь описать все, что выходит за рамки того, что должно быть в «ответе», но все это общедоступно при поиске в Интернете.
Лично, если бы это был мой проект и знание того, что я о нем знаю:Если поля формы в документе не требуются (ввод данных через поля не требуется), я бы использовал только закладки и поля REF.