Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » Excel VBAでWordの表の個数を取得する

Excel VBAでWordの表の個数を取得する

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

「excelvba ワード テーブル数 読み込み」
といった検索キーワードでアクセスがありました。

Excel VBAを使って、WordのTable数を取得するには、どのようなコードを書けばいいのか探していた方による検索でしょう。

Wordの表の個数を取得するサンプルマクロ

表の存在するWord文書が1つ開かれている状態で、以下のExcelマクロを実行すると、Word文書内に存在する表の個数がメッセージボックスに表示されます。

Sub Wordの表の個数を取得する()
On Error GoTo ErrHandl

 With GetObject(Class:="Word.Application")
  MsgBox .ActiveDocument.Tables.Count
 End With

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

Document.Tables.Countで表の個数を取得

拙著『Excel VBAユーザーのためのWord VBA入門(2):Tableの基本編』の、「9-1. Document.TablesでTablesを取得する」で、

ActiveDocument.Tables.Count

といったWord VBAのコードで、アクティブなWord文書に含まれる表の個数を取得できることを解説しています。

このコードを、Excel VBAやAccess VBAなどからでも実行できるように書いたのが、上記のSubプロシージャです。
Excel VBAやAccess VBAなどから実行できるように、VBAのGetObject関数を使って、起動済みWord.Applicationへの参照を取得しておいてから、

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

Word VBAの「ActiveDocument.Tables.Count」で取得した表の個数をメッセージボックスに表示しています。

 MsgBox .ActiveDocument.Tables.Count

Excel VBAだけを知っていてもWord VBAのコードは書けない

「excelvba ワード テーブル数 読み込み」
と検索なさった方が、Excel VBAがわかっていればWord VBAのコードもスラスラ書けるはず、と思ってらっしゃるのなら、それは完全な誤解です。

Wordを操作するコードを書きたいのならば、Wordに用意されている大量のオブジェクトがどのような階層構造になっていて、それぞれのオブジェクトが何を担っているのかを理解しなければなりません。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » Excel VBAでWordの表の個数を取得する

「Office連携」の記事一覧

検索


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

.