大体でIT
大体でIT
2021/12/1
Excel VBAを使って、テーブル名を取得するには、「セル.ListObject.Name」か「ListObjects(1).Name」を使って、取得します。シート内のすべてや、ブック内のすべてのテーブル名を取得したい場合は、「For Each」を使ってループして、取得しましょう。
この記事では、テーブル名を取得する方法について、ご紹介します。
セル.ListObject.Name
ListObjects(1).Name
シート内のすべてや、ブック内のすべてのテーブル名を取得したい場合は、「For Each」を使ってループして、テーブル名を取得しましょう。
では、テーブル名を取得する方法について、解説していきます。
VIDEO
やりたい内容は、「テーブル名」を取得したい、ということになります。
「テーブル名」を取得したい
セル.ListObject.Name
ListObjects(1).Name
「セル.ListObject.Name」を使って、テーブル名を取得してみます。
「Range("B2")」にあるテーブルのテーブル名を取得できます。
Sub TEST1()
'テーブル名を取得する
Debug.Print Range("B2").ListObject.Name
End Sub
テーブルを用意
実行すると、「テーブル1」という、テーブル名を取得できます。
テーブル名を取得できた
「テーブル1」という、テーブル名を取得できました。
次は、「ListObjects(1).Name」を使って、テーブル名を取得してみます。
Sub TEST2()
'テーブル名を取得する
Debug.Print ActiveSheet.ListObjects(1).Name
End Sub
先ほどと同じように、「テーブル1」というテーブルを用意しておきます。
テーブルを用意
実行すると、「テーブル1」という、テーブル名を取得できます。
テーブル名を取得できた
「テーブル1」という、テーブル名を取得できました。
「For Each」と「ListObjects」を使う
「For Each」と「ListObjects」を使って、シート内のテーブル名を取得します。
Sub TEST3()
Dim A
'シート内で、すべてのテーブルをループする
For Each A In ActiveSheet.ListObjects
'テーブル名を取得
Debug.Print A.Name
Next
End Sub
複数のテーブルを用意
実行すると、シート内のすべての、テーブル名を取得できます。
シート内のすべての、テーブル名を取得できた
「For Each」×2と「ListObjects」を使う
ワークシートをループする「For Each」と、テーブルをループする「For Each」を使って、ブック内のテーブル名をすべて取得します。
Sub TEST4()
Dim A, B
'すべてのシートをループ
For Each A In Worksheets
'シート内で、すべてのテーブルをループ
For Each B In A.ListObjects
'テーブル名を取得
Debug.Print B.Name
Next
Next
End Sub
複数シートにテーブルを用意
実行すると、ブック内のすべての、テーブル名を取得できます。
ブック内のすべての、テーブル名を取得できた
この記事では、テーブル名を取得する方法について、ご紹介しました。
セル.ListObject.Name
ListObjects(1).Name
シート内のすべてや、ブック内のすべてのテーブル名を取得したい場合は、「For Each」を使ってループして、テーブル名を取得しましょう。
参考になればと思います。最後までご覧くださいまして、ありがとうございました。