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

ListObjectオブジェクトの有無を確認する

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

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

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

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

[スポンサードリンク]

アクティブシートのテーブル・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 "テーブルは存在しません。"

最終更新日時:2019-10-23 15:11

[スポンサードリンク]

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

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

検索


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

.