هنگامی که با فرم ها کار می کنید، فرم ها را به عنوان الگوهایی ذخیره می کنید که به عنوان پایه اسناد جدید در Word استفاده می شوند. ممکن است مواقعی پیش بیاید که بخواهید یک فیلد فرم اضافه کنید که هر بار که یک سند جدید را بر اساس الگوی فرم خود ایجاد می کنید افزایش می یابد. به عنوان مثال، ممکن است یک شماره دنباله داشته باشید که برای فرم ورودی داده به آن نیاز دارید، یا ممکن است بخواهید از یک فیلد فرم برای نشان دادن شماره فاکتور استفاده کنید.
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» اشاره کند.