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コレクションオブジェクトの数を調べています。

開いている文書に表が存在するか判定するサンプルマクロ

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


Sub 表が存在するか判定する_開いている文書()
 Dim doc As Document
 Dim n As Long

 n = 0
 For Each doc In Documents
  If doc.Tables.Count > 0 Then
   n = n + 1
  End If
 Next doc

 If n = 0 Then
  MsgBox "表の含まれている文書はありません。"
 Else
  MsgBox "表の含まれている文書が" & n & "個あります。"
 End If
End Sub

開いている文書全体にループを回して、
  For Each doc In Documents

表が存在していたら、変数・nをインクリメントして、
  If doc.Tables.Count > 0 Then
   n = n + 1

ループ終了後に変数・nを調べて表示するメッセージを変更しています。
  If n = 0 Then
   MsgBox "表の含まれている文書はありません。"
  Else
   MsgBox "表の含まれている文書が" & n & "個あります。"

[スポンサードリンク]

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

TrackBack:0

TrackBack URL

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

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

検索


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

.