Home » ワードマクロ・Word VBAの使い方 » 表・テーブル » Word VBAで表が存在するかを判定

Word VBAで表が存在するかを判定

対象:Word2007, Word2010, Word2013

「ワード マクロ if 表がなければ」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

Wordマクロ・Word VBA(Visual Basic for Applications)で、表が存在するかどうかによって処理の分岐を行う方法を探している方による検索です。

アクティブ文書に表が存在するか判定するサンプルマクロ

表があるかを判定したあとに、どのような処理を行うかによって、いろいろな判定方法が考えられるでしょうが、ここでは汎用性の高そうな、TablesコレクションオブジェクトのCountプロパティを利用したコードをご紹介しておきます。

Sub 表が存在するか判定する_アクティブ文書()
 If ActiveDocument.Tables.Count = 0 Then
  MsgBox "アクティブ文書に表は存在しません。"
 Else
  MsgBox "アクティブ文書に表が存在します。"
 End If
End Sub

アクティブな文書に表が存在していないときに上記のマクロを実行すると、
「アクティブ文書に表は存在しません。」
とメッセージが表示され、存在していれば、
「アクティブ文書に表が存在します。」
と表示されます。

アクティブな文書のTablesプロパティで、Tablesコレクションオブジェクトを取得して、そのCountプロパティが「0」(ゼロ)ならば表は存在していない、「0」でなければ表が存在しているという判定です。

アクティブページに表が存在するか判定するサンプルマクロ

アクティブなページに表が存在しているかどうかを判定するなら、以下のようなコードです。

Sub 表が存在するか判定する_アクティブページ()
 If ActiveDocument _
 .Bookmarks("\page").Range.Tables.Count = 0 Then
  MsgBox "アクティブページに表は存在しません。"
 Else
  MsgBox "アクティブページに表が存在します。"
 End If
End Sub

考え方は先の文書全体に判定をするのと同じです。

アクティブ文書の場合は
  ActiveDocument.Tables.Count
で、アクティブなページの場合は
  ActiveDocument.Bookmarks("\page").Range.Tables.Count
としているのが違うだけです。

選択範囲に表が存在するか判定するサンプルマクロ

選択範囲に表が存在しているかどうかを判定するなら、以下のようなコードです。

Sub 表が存在するか判定する_選択範囲()
 If Selection.Tables.Count = 0 Then
  MsgBox "選択範囲に表は存在しません。"
 Else
  MsgBox "選択範囲に表が存在します。"
 End If
End Sub

Selectionプロパティで、Selectionオブジェクトを取得して、そのTablesコレクションオブジェクトの数を調べています。

最終更新日時:2021-09-03 16:49

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » 表・テーブル » Word VBAで表が存在するかを判定

「表・テーブル」の記事一覧

検索


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

.