【Word マクロ】表の中を自動で編集しよう!
Wordで表の中のテキストを編集する場合のマクロをご紹介します。
Wordのマクロは、Excelのマクロに比べて参考となるものが少なくて、
中々Webで探すのも大変かと思います。
少しでも参考になればと思い、サンプルコードとともに解説していきます。
表の指定は、「ActiveDocument.Tables」で
Wordのマクロで「ActiveDocument.Tables」を使うと
ページに存在する表(テーブル)を指定することができます。
「ActiveDocument.Tables([番号])」で何番目の表であるかを指定します。
もし、表が1つの場合は、「ActiveDocument.Tables(1)」となります。
表が複数ある場合は、添え字の数値を変えたり、変数を用いて任意の表を指定できます。
表中の場所(番地)は「.Cell([行番号], [列番号]).Range」で
「ActiveDocument.Tables([番号])」で表を指定したら、次に場所(番地)を指定しましょう。
場所の指定は、「.Cell([行番号], [列番号]).Range」を使います。
Excelのセルを指定するような感じです。
「ActiveDocument.Tables([番号])」と組み合わせて使うと、
「ActiveDocument.Tables([番号]).Cell([行番号], [列番号]).Range」になります。
こちらも添え字の数値を指定したり、変数を用いて任意の場所を指定できます。
編集する場所を指定できたら、あとは操作を指定しよう!
上記で編集する場所は指定できます。あとは操作を指定するだけです。
セル内の文字列(テキスト)を削除したい場合は「Delete」、
変更したい場合は「Text」だったり、追記したい場合は「.InsertAfter」を使います。
具体的なサンプルコードを次に記載しておきます。
サンプルコード
■指定のセル内容を削除する場合
ActiveDocument.Tables(1).Cell(i, j).Range.Delete
■指定のセルにテキストを挿入する場合
ActiveDocument.Tables(1).Cell(i, j).Range.Text = “テスト”
まとめ
- 表の指定は、「ActiveDocument.Tables」
- 場所の指定は、「.Cell([行番号], [列番号]).Range」
- 操作を「Delete」、「Text」「InsertAfter」で指定する
いかがでしたでしょうか?
ExcelのようにWordでも表の操作がマクロで実行でき、仕様によっては自動化できます。
ルーチン作業のように同じようなことを繰り返すのであれば
ぜひとも一度はマクロでの実行を検討することをおススメします。
以上、「【Word マクロ】表の中を自動で編集しよう!」でした。