「ワードvbaドキュメントに変数書き込む」
といった検索キーワードでアクセスがありました。
Word VBAで、変数に格納されているデータ・値を、Word文書に書き込むにはどのようなコードを書けばいいのかを調べていらしたのでしょう。
変数に格納されているデータを、Word文書に書き込む方法はいくつも考えられますが、文字列範囲を表すRangeオブジェクトのTextプロパティを使う方法が応用しやすく、最初に抑えておきたい方法です。
変数に格納されているデータを本文文字列にするWordマクロ
以下のWordマクロを実行すると、アクティブなWord文書の本文が、変数txtに格納されている文字列「Hello, World! 」に変更されます。
Dim txt As String
txt = "Hello, World! "
ActiveDocument.Range.Text = txt
End Sub
拙著『Excel VBAユーザーのためのWord VBA入門(1): Document・Range・Selectionの基本編』の「3-2. Document.RangeメソッドでRangeを取得する」では、DocumentオブジェクトのRangeメソッドを使って、
Word文書の本文全体の文字列範囲を表すRangeオブジェクトを取得できること、「3-4. Rangeの特徴的なプロパティ」でRangeオブジェクトのTextプロパティを使って
文字列を取得できることを解説しています。
そのRange.Textプロパティを使って、設定もできるわけです。
変数に格納されているデータを本文の先頭に書き込むWordマクロ
以下のWordマクロを実行した場合には、アクティブなWord文書の先頭に変数txtに格納されている文字列「Hello, World! 」が書き込まれます。
Dim txt As String
txt = "Hello, World! "
ActiveDocument.Range(0, 0).Text = txt
End Sub
先ほどのマクロで、
ActiveDocument.Range.Text = txt
となっていた行が、
ActiveDocument.Range(0, 0).Text = txt
になっている点だけが異なります。
拙著の「3-2. Document.RangeメソッドでRangeを取得する」で、Document.Rangeメソッドの2つの引数に「0」を指定することで、本文の先頭位置を表すRangeオブジェクトを取得できることをご紹介しています。
「ActiveDocument.Range(0, 0)」で取得した本文の先頭位置を表すRangeオブジェクトのTextプロパティに変数txtを代入することで、変数txtに格納されているデータ(文字列)を本文の先頭に追加しているのが上記のマクロです。
以上のように、Range.Textプロパティを使えば、変数に格納されているデータを書き込むことができます。
どこに書き込みたいのか、場所を特定するRangeオブジェクトをどう特定するかが、ポイントです。
最終更新日時:2024-07-09 09:29
- Newer:マウスポインタを目立たせるツール-Orakuin
- Older:VBAでアクティブブック以外を閉じる
Home » ワードマクロ・Word VBAの使い方 » Word VBAで変数に格納されているデータを文書に書き込む