フォームを操作するときは、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)用のこのヒントのバージョンを見つけることができます。以降)ここ: