大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAを使って、テーブル名を取得するには、「セル.ListObject.Name」か「ListObjects(1).Name」を使って、取得します。シート内のすべてや、ブック内のすべてのテーブル名を取得したい場合は、「For Each」を使ってループして、取得しましょう。

はじめに

この記事では、テーブル名を取得する方法について、ご紹介します。

テーブル名を取得する方法は、2つあります。

  • セル.ListObject.Name
  • ListObjects(1).Name

という感じです。

シート内のすべてや、ブック内のすべてのテーブル名を取得したい場合は、「For Each」を使ってループして、テーブル名を取得しましょう。

では、テーブル名を取得する方法について、解説していきます。

この記事を読むメリット

  • テーブル名を取得する方法がわかります

本記事の内容を動画でまとめています

目次から見たい項目へ移動すると便利ですよ。

目次

テーブル名を取得する

VBAを使って、テーブル名を取得してみます。

やりたいこと

やりたい内容は、「テーブル名」を取得したい、ということになります。

「テーブル名」を取得したい

やりたい内容は、「テーブル名」を取得したい、ということになります

テーブル名を取得する方法は、2つあります。

  • セル.ListObject.Name
  • ListObjects(1).Name

という感じです。

「セル.ListObject.Name」を使う

「セル.ListObject.Name」を使って、テーブル名を取得してみます。

「Range("B2")」にあるテーブルのテーブル名を取得できます。

Sub TEST1()
    
    'テーブル名を取得する
    Debug.Print Range("B2").ListObject.Name
    
End Sub

「テーブル1」というテーブルを用意しておきます。

テーブルを用意

「テーブル1」というテーブルを用意しておきます

実行すると、「テーブル1」という、テーブル名を取得できます。

テーブル名を取得できた

「テーブル1」という、テーブル名を取得できました

「テーブル1」という、テーブル名を取得できました。

「ListObjects(1).Name」を使う

次は、「ListObjects(1).Name」を使って、テーブル名を取得してみます。

「1つ目」のテーブルのテーブル名を取得できます。

Sub TEST2()
    
    'テーブル名を取得する
    Debug.Print ActiveSheet.ListObjects(1).Name
    
End Sub

先ほどと同じように、「テーブル1」というテーブルを用意しておきます。

テーブルを用意

「テーブル1」というテーブルを用意しておきます

実行すると、「テーブル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

シート内に、2つのテーブルを用意しておきます。

複数のテーブルを用意

シート内に、2つのテーブルを用意しておきます

実行すると、シート内のすべての、テーブル名を取得できます。

シート内のすべての、テーブル名を取得できた

シート内のすべての、テーブル名を取得できました

シート内のすべての、テーブル名を取得できました。

ブック内のテーブル名を取得する

次は、ブック内のテーブル名を取得してみます。

「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

複数シートに、6つのテーブルを用意しておきます。

複数シートにテーブルを用意

複数シートに、6つのテーブルを用意しておきます

実行すると、ブック内のすべての、テーブル名を取得できます。

ブック内のすべての、テーブル名を取得できた

ブック内のすべての、テーブル名を取得できました

ブック内のすべての、テーブル名を取得できました。

おわりに

この記事では、テーブル名を取得する方法について、ご紹介しました。

テーブル名を取得する方法は、2つあります。

  • セル.ListObject.Name
  • ListObjects(1).Name

という感じです。

シート内のすべてや、ブック内のすべてのテーブル名を取得したい場合は、「For Each」を使ってループして、テーブル名を取得しましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す