対象:Excel 2010, Excel 2013, Windows版Excel 2016
「vba tableの開始セル .listobjects」
という検索キーワードでのアクセスがありました。
「table」と表現されていますが、テーブル機能・ListObjectオブジェクトの、開始セルを取得するにはどうすればいいのかを調べていらした方による検索でしょうか。
[スポンサードリンク]
ListObjectの開始セルを取得するサンプルマクロ
テーブルの存在するワークシートがアクティブな状態で、以下のSubプロシージャを実行すると、ListObjectオブジェクトの一番左上のセルのアドレスがメッセージボックスに表示されます。
Sub ListObjectの開始セルを取得する()
Dim rng As Range
Set rng = ActiveSheet.ListObjects(1).Range.Cells(1, 1)
MsgBox rng.Address(False, False)
End Sub
Dim rng As Range
Set rng = ActiveSheet.ListObjects(1).Range.Cells(1, 1)
MsgBox rng.Address(False, False)
End Sub
サンプルマクロのオブジェクトを取得する式について
ListObjectオブジェクトの存在するセルは、ListObjectオブジェクトのRangeプロパティで取得できます。
その開始セルなので、Excel VBAユーザーにおなじみのCellsプロパティに「1, 1」と引数を指定しています。
厳密にはCellsプロパティの引数ではなく、Rangeオブジェクトの既定プロパティですが。
あるセル範囲から1つのセルを表すRangeオブジェクトを取得するには、Cellsプロパティに行・列を表す引数を指定する方法がメジャーなので、上記のオブジェクト式をわかりやすいと感じる方が多そうですが、
Set rng = ActiveSheet.ListObjects(1).Range.Cells(1)
や、Range.Itemプロパティを使って、
Set rng = ActiveSheet.ListObjects(1).Range.Item(1)
としても同じことです。
[スポンサードリンク]
Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » テーブル・ListObjectの開始セルを取得する