「vba listobject 有無判断」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
ListObjectオブジェクト(テーブル)が存在するかどうかの判定・確認を、VBAで行うには、どのようなコードを書けばいいのか探していた方による検索キーワードです。
アクティブシートのテーブル・ListObjectの有無を判定するサンプルマクロ
以下のようなマクロで、アクティブなシート上にテーブル・ListObjectオブジェクトが存在しているかどうかを判定できます。If ActiveSheet.ListObjects.Count = 0 Then
MsgBox "テーブルは存在しません。"
Else
MsgBox "テーブルが存在します。"
End If
End Sub
ListObjectオブジェクトを単一メンバーとして持つ、ListObjectsコレクションオブジェクトのCountプロパティを調べて「0」だったならば、ListObjectオブジェクトは存在していないと判定できます。
アクティブブックにテーブル・ListObjectの有無を判定するサンプルマクロ
以下のようなマクロにすれば、アクティブなブック内にテーブル・ListObjectオブジェクトが存在しているかどうかを判定できます。
Dim ws As Worksheet
Dim cnt As Long: cnt = 0
For Each ws In Worksheets
cnt = ws.ListObjects.Count + 1
Next ws
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オブジェクトの有無を確認する