Когда вы работаете с формами, вы сохраняете формы как шаблоны, которые используются в качестве основы для новых документов в Word. Бывают случаи, когда вы хотите добавить поле формы, которое увеличивается каждый раз, когда вы создаете новый документ на основе вашего шаблона формы. Например, у вас может быть порядковый номер, который вам нужен для формы ввода данных, или вы можете использовать поле формы, чтобы указать invoice число.

Word не имеет каких-либо необычных полей с автоинкрементом. Однако, объединив некоторые из инструментов, уже доступных в Word, вы можете создать шаблон и поле формы, которые сделают это за вас. Начните с этого макроса:

Sub AutoNew()

' Exit macro if no fields in document    If ActiveDocument.FormFields.Count = 0 Then Exit Sub    ' Create variables.

Dim OfficeAppName As String    Dim RegSection As String    Dim RegKey As String    Dim FieldObj As Object    Dim RegValue As Long

OfficeAppName = "Word 2016"

RegSection = "UserData"

RegKey = "Current Counter"

' Generate error if form field doesn't exist    On Error GoTo ErrHandler    Set FieldObj = ActiveDocument.FormFields("IncField")

' Get stored registry value, if any    RegValue = GetSetting(OfficeAppName, RegSection, RegKey, 0)

' If not previously set, set to default    If RegValue = 0 Then RegValue = 1    ' Set form field result to stored value    FieldObj.Result = CStr(RegValue)

' Increment and update invoice number    SaveSetting OfficeAppName, RegSection, RegKey, RegValue + 1 ErrHandler:

If Err <> 0 Then       MsgBox Err.Description    End If End Sub

Этот макрос следует сохранять только в шаблоне, который вы будете использовать для создания своих форм. Макрос должен называться AutoNew, поэтому он будет запускаться всякий раз, когда создается документ на основе шаблона формы. Вы также должны убедиться, что у вас есть поле текстовой формы в вашем документе с именем IncField, в котором будет отображаться возрастающее число. Номер отслеживается в реестре, поэтому к нему можно будет получить доступ для будущих форм.

Обратите внимание на строку в макросе, которая устанавливает переменную OfficeAppName. В этой версии макроса используется фраза «Word 2016». Если вы используете другую версию Word, вам следует изменить эту строку, чтобы она относилась к вашей версии, например «Word 2019».

_Примечание: _

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

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (11431) применим к Microsoft Word 2007, 2010, 2013, 2016, 2019 и Word в Office 365. Вы можете найти версию этого совета для старый интерфейс меню Word здесь:

link: / word-Auto-incrementing_Form_Fields [Автоинкремент полей формы].