Excel VBA ListObject


テーブル ListObject

Excel使うなら絶対使うべき機能テーブル!

リストデータに対して、入力規則を自動適用したり
構造化参照を使って数式が管理しやすくなったりいいことたくさん。
さぁ、レッツ Ctrl+T !

そのListObjectに関してのメモ書き&備忘録。

テーブル特定

sample.vba
Activesheet.ListObjects(1).
Range("A1").listobject.
Range("テーブル1").listobject.

*テーブル1=tablename

テーブル特定部分の指定

テーブル全体

ListObject.vba
Activesheet.ListObjects(1).Range.Select
Range("A1").listobject.Range.Select

ヘッダーのみ

ListObject.vba
Activesheet.ListObjects(1).HeaderRowRange.Select

(ヘッダー除く)データ全体

ListObject.vba
Activesheet.ListObjects(1).DataBodyRange.Select

ListObject.vba
Activesheet.ListObjects(1).ListColumns(2).Range.Select

2列目全体を選択

ListObject.vba
Activesheet.ListObjects(1).ListRows(3).Range.Select

データの3行目を選択(ヘッダーは含まれない)

集計行

ListObject.vba
Activesheet.ListObjects(1).TotalsRowRange.Select

え、集計行設定してない? ⇒
 Ctrl + Shift + T ね。

データ先頭行(Excel行)取得

ListObject.vba
debug.print Activesheet.ListObjects(1).DataBodyRange.Row

データ行数取得

ListObject.vba
debug.print Activesheet.ListObjects(1).ListRows.Count

データ最終行(Excel行)取得

ListObject.vba
debug.print Activesheet.ListObjects(1).DataBodyRange.Row + Activesheet.ListObjects(1).ListRows.Count - 1

上のデータ先頭行(Excel行)取得してデータ行数取得して、1引くとデータの最終行

おわり

テーブルって管理が楽になるよね