経緯
Excelでは「A1」や「F6」などでセルを簡単に指定できますが、Wordではこのようなセルアドレスの記法が存在しません。
そこで、Wordのテーブルにおいて、特定の座標位置に文字を入力する方法を調べてみました。
結果として、VBAを使えば**「テーブルの行・列(row, column)」を指定することで簡単に文字を挿入できる**ことが分かりました。
使用した環境
- アプリケーション:Microsoft Word
- 使用技術:VBA(Visual Basic for Applications)
- 操作対象:Word内のテーブル(表)
実装コード(VBA)
以下が、Wordのテーブルのセル(1行1列)に「mori」と入力するVBAコードです。
Sub InsertTextIntoTableCell()
Dim tbl As Table
' Word文書内の最初のテーブルを指定
Set tbl = ActiveDocument.Tables(1)
' テーブルのセル(1,1)に「mori」という文字列を入力
tbl.Cell(1, 1).Range.Text = "mori"
End Sub
このコードを実行すると、Word内の最初のテーブルの左上のセル(1行1列)に「mori」という文字が入力されます。
応用:他のセルに入力する場合
たとえば、2行3列目に文字を入力したい場合は、以下のように書き換えるだけです。
tbl.Cell(2, 3).Range.Text = "sample"
基本構文:tbl.Cell(行番号, 列番号).Range.Text = "文字"
で操作ができます。
注意点
- Wordのテーブルは複雑な構造(セル結合など)になっている場合、指定座標が無効になることがあります
Range.Text
はセルの内容全体を上書きします。追記したい場合は.InsertAfter
などを使ってください- 複数のテーブルがある場合は
Tables(1)
をTables(2)
などに変更して対象を指定してください
まとめ
Wordのテーブルでも、Excelのように座標を指定してセルを操作することが可能です。
今回ご紹介した方法を使えば、データ自動入力や帳票の自動生成にも応用できます。
シンプルながら実務でも使えるテクニックですので、ぜひご活用ください。
最後までお読みいただきありがとうございました。