Автоинкремент полей формы (Microsoft Word)
Когда вы работаете с формами, вы сохраняете формы как шаблоны, которые используются в качестве основы для новых документов в 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 [Автоинкремент полей формы]
.