英語で読む

次の方法で共有


Variable オブジェクト (Word)

文書の一部として格納された変数を表します。 文書変数は、マクロ セッション間でマクロの設定を保存するときに使用します。 Variable オブジェクトは Variables コレクションのメンバーです。 Variables コレクションには、文書またはテンプレートのすべての文書変数が含まれます。

注釈

オブジェクトを取得する 1 つ の変数変数 (インデックス) に文書変数の名前またはインデックス番号を使用します。 次の例では、作業中の文書に文書変数 Temp の値を表示します。

MsgBox ActiveDocument.Variables("Temp").Value

インデックス番号は、 Variables コレクション内のドキュメント変数の位置を表します。 Variables コレクションに最後に追加された変数はインデックス番号 1 です。コレクションに追加される 2 番目から最後の変数はインデックス番号 2 などです。 次の使用例は、作業中の文書の最初のドキュメント変数の名前を表示します。

MsgBox ActiveDocument.Variables(1).Name

Variables コレクションの Add メソッドを使用して、ドキュメントに変数を追加します。 次の使用例は、値が作業中の文書の 12 の"Temp"という名前の文書変数を追加します。

ActiveDocument.Variables.Add Name:="Temp", Value:="12"

Variables コレクションに既に存在する名前の文書変数を追加しようとすると、エラーが発生します。 このエラーを回避するのには、新しい変数を追加する前にコレクションを列挙できます。 次の使用例は、作業中の文書に文書変数 Blue が既に存在する場合、値を 6 に設定します。 存在しない場合、この変数を文書に追加し、値を 6 に設定します。

For Each aVar In ActiveDocument.Variables 
 If aVar.Name = "Blue" Then num = aVar.Index 
Next aVar 
If num = 0 Then 
 ActiveDocument.Variables.Add Name:="Blue", Value:=6 
Else 
 ActiveDocument.Variables(num).Value = 6 
End If

適切な変数名を付けて DOCVARIABLE フィールドを挿入しない限り、文書変数はユーザーには表示されません。 次の使用例は、"Temp" という名前の文書変数を作業中の文書に追加し、DOCVARIABLE フィールドを挿入して変数の値を表示します。

With ActiveDocument 
 .Variables.Add Name:="Temp", Value:="12" 
 .Fields.Add Range:=Selection.Range, _ 
 Type:=wdFieldDocVariable, Text:="Temp" 
End With 
ActiveDocument.ActiveWindow.View.ShowFieldCodes = False

ドキュメント変数をテンプレートに追加するには、 OpenAsDocument メソッドを使用してテンプレートをドキュメントとして開きます。 作業中の文書に添付されたテンプレートで、ユーザー名を [ オプション] ダイアログ ボックス) を格納する例を次にします。

ScreenUpdating = False 
With ActiveDocument.AttachedTemplate.OpenAsDocument 
 .Variables.Add Name:="UserName", Value:=Application.UserName 
 .Close SaveChanges:=wdSaveChanges 
End With

関連項目

Word オブジェクト モデル リファレンス

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。