「excelvba ワード テーブル数 読み込み」
といった検索キーワードでアクセスがありました。
Excel VBAを使って、WordのTable数を取得するには、どのようなコードを書けばいいのか探していた方による検索でしょう。
Wordの表の個数を取得するサンプルマクロ
表の存在するWord文書が1つ開かれている状態で、以下のExcelマクロを実行すると、Word文書内に存在する表の個数がメッセージボックスに表示されます。
On Error GoTo ErrHandl
With GetObject(Class:="Word.Application")
MsgBox .ActiveDocument.Tables.Count
End With
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の表の個数を取得する