Home » ワードマクロ・Word VBAの使い方 » Word VBAで変数に格納されているデータを文書に書き込む

Word VBAで変数に格納されているデータを文書に書き込む

動作検証バージョン:Windows 11 Home + 64bit Word バージョン 2407(ビルド17820.20000クイック実行)ベータチャネル

「ワードvbaドキュメントに変数書き込む」
といった検索キーワードでアクセスがありました。

Word VBAで、変数に格納されているデータ・値を、Word文書に書き込むにはどのようなコードを書けばいいのかを調べていらしたのでしょう。

変数に格納されているデータを、Word文書に書き込む方法はいくつも考えられますが、文字列範囲を表すRangeオブジェクトのTextプロパティを使う方法が応用しやすく、最初に抑えておきたい方法です。

変数に格納されているデータを本文文字列にするWordマクロ

以下のWordマクロを実行すると、アクティブなWord文書の本文が、変数txtに格納されている文字列「Hello, World! 」に変更されます。

Sub 変数に格納されているデータをWord文書に書き込む()
 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! 」が書き込まれます。

Sub 変数に格納されているデータをWord文書の先頭に書き込む()
 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

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Word VBAで変数に格納されているデータを文書に書き込む

「ワードマクロ・Word VBAの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.