Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » VBAでテーブル・ListObjectの有無を確認する

VBAでテーブル・ListObjectの有無を確認する

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

VBAでテーブル・ListObjectの有無を確認する

「vba listobject 有無判断」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

ListObjectオブジェクト・テーブルが存在するかどうかの判定・確認を、VBA(Visual Basic for Applications)で行うには、どのようなコードを書けばいいのか探していた方による検索キーワードです。

[スポンサードリンク]

アクティブシートのテーブル・ListObjectの有無を判定するサンプルマクロ

以下のようなマクロで、アクティブなシート上にテーブル・ListObjectオブジェクトが存在しているかどうかを判定できます。


Sub テーブルが存在するか判定する_アクティブシート()

 If ActiveSheet.ListObjects.Count = 0 Then
  MsgBox "テーブルは存在しません。"
 Else
  MsgBox "テーブルが存在します。"
 End If

End Sub

ListObjectオブジェクトを単一メンバーとして持つ、ListObjectsコレクションオブジェクトのCountプロパティを調べて「0」だったならば、ListObjectオブジェクトは存在していないと判定できます。

アクティブブックにテーブル・ListObjectの有無を判定するサンプルマクロ

以下のようなマクロにすれば、アクティブなブック内にテーブル・ListObjectオブジェクトが存在しているかどうかを判定できます。


Sub テーブルが存在するか判定する_アクティブブック()

 Dim ws As Worksheet
 Dim cnt As Long: cnt = 0

 For Each ws In Worksheets
  cnt = ws.ListObjects.Count + 1
 Next ws

 If cnt = 0 Then
  MsgBox "テーブルは存在しません。"
 Else
  MsgBox "テーブルが存在します。"
 End If

End Sub

全ワークシートを対象にFor Each~Nextループを回して、
 For Each ws In Worksheets

各ワークシート上のListObjectsコレクションオブジェクトのCountプロパティで返される値を加算し続けて、
  cnt = ws.ListObjects.Count + 1

もしも変数・cntが「0」のままだったら、アクティブブック上にListObjectオブジェクトが存在していないという判定を行っています。
 If cnt = 0 Then
  MsgBox "テーブルは存在しません。"

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » VBAでテーブル・ListObjectの有無を確認する

TrackBack:1

TrackBack URL
シート内のテーブル数・ListObjectの数を取得する from インストラクターのネタ帳
ワークシート内に含まれるテーブル数・ListObjectオブジェクトの数を取得するExcel(エクセル)マクロをご紹介しています。

Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » VBAでテーブル・ListObjectの有無を確認する

「ListObjectオブジェクト」の記事一覧

検索


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

.