フォームフィールドの自動インクリメント(Microsoft Word)
フォームを操作するときは、Wordの新しいドキュメントの基礎として使用されるテンプレートとしてフォームを保存します。フォームテンプレートに基づいて新しいドキュメントを作成するたびに増加するフォームフィールドを追加したい場合があります。たとえば、データ入力フォームに必要なシーケンス番号がある場合や、フォームフィールドを使用してhttp://www.formville.com/C2_free-invoice-forms.html[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 2002" 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変数を設定するマクロの行に注意してください。このバージョンのマクロでは、「Word2002」というフレーズに設定されています。別のバージョンのWordを使用している場合は、この行を変更して、「Word2000」や「Word2003」などのバージョンを参照するようにする必要があります。
注:
このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(1329)は、Microsoft Word 97、2000、2002、および2003に適用されます。Wordのリボンインターフェイス(Word 2007)用のこのヒントのバージョンを見つけることができます。以降)ここ: