ブック内のテーブルをテーブル名で取得したい【エクセル】【VBA】

Excel

はじめに

エクセルVBAで、テーブル名でテーブルを取得する方法をご紹介します。

方法

テーブルは、VBAではListObjectというデータ型で定義されています。

その為、ブックとシートをforeachで回して、名前が一致したら、テーブルを返せば良いです。

Public Function FindTable(ByVal TableName As String)
    Dim Result As ListObject
    
    Dim Ws As Worksheet
    For Each Ws In ThisWorkbook.Worksheets
        Dim tbl As ListObject
        For Each tbl In Ws.ListObjects
            If (tbl.Name = TableName) Then
                Set Result = tbl
                GoTo BREAK
            End If
        Next
    Next
BREAK:
    Set FindTable = Result
End Function

まとめ

  • テーブルはVBAではListObjectというデータ型。
  • ブックとシートをforeachで回して名前一致を探す。

コメント

タイトルとURLをコピーしました