Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » Excel VBAでWordの表に行を追加する

Excel VBAでWordの表に行を追加する

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel & Word(バージョン2202 ビルド14931.20132 Microsoft Store)

Word.Rows.Add

「Excel vba word表 行追加」
という検索キーワードでアクセスがありました。

Excel VBAを使って、Word文書内にある表に行を追加するには、どのようなコードを書けばいいのかを探していらしたのでしょうか。

Wordの表に行を追加するサンプルマクロ

表の存在するWord文書が開かれている状態で、以下のExcelマクロを実行してみてください。

Sub Wordの表に行を追加する()
On Error GoTo ErrHandl

 With GetObject(Class:="Word.Application")
  .ActiveDocument.Tables(1).Rows.Add
 End With

Exit Sub
ErrHandl:
 Select Case Err.Number
  Case 429
   MsgBox "Wordが起動していないようです。"
  Case 4248
   MsgBox "Wordファイルが開かれていないようです。"
  Case 5941
   MsgBox "開いているWordファイルには表が存在しないようです。"
  Case Else
   MsgBox Err.Description & vbCrLf & Err.Number
 End Select
 Err.Clear
End Sub

Word.Rows.Addで表に行を追加できる

VBAのGetObject関数を使って、

With GetObject(Class:="Word.Application")

起動済みWord.Applicationへの参照を取得した後は、実質的にWord VBAです。

拙著『Excel VBAユーザーのためのWord VBA入門(2):Tableの基本編』の、「13-4. Rowsの特徴的なプロパティ・メソッド」で、WordのRows.Addメソッドについて以下のように書いています。

引数を指定しなかった場合には、表の1番下に行が挿入されます。

上記の

 .ActiveDocument.Tables(1).Rows.Add

は、そのようなWord.Rows.Addメソッドに引数を指定していない例です。

Excel VBAだけを知っていても…

「Excel vba word表 行追加」
と検索なさった方がもしも
「Excel VBAがわかっていればWord VBAも簡単!」
と思ってらっしゃるのならば、それは誤解です。

Excel VBAをある程度使える方ならば、雰囲気で、ある程度のコードは、試行錯誤しつつ書けると思います。
しかし自信を持って書くことは不可能です。

Wordの各オブジェクトがどのような階層構造になっていて、それぞれのオブジェクトが何を担っているのかを知っていなければ、Word VBAのコードは書けません。
特に表に関しては、Excel VBAでできることはWordでもできるだろうと思い込んでいると、戸惑う場面が増えると私は考えています。

最終更新日時:2022-03-24 15:24

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » Excel VBAでWordの表に行を追加する

「Office連携」の記事一覧

検索


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

.