テーブル機能の備忘録 ② テーブルの範囲指定(1)
昨日から、マクロによるテーブル機能の扱いを纏めている(備忘録)。
今日は、昨日の続き。
Excelのテーブルについて、その範囲を指定したい場合がある。
テーブルとして書式設定されていないなら、一般的にはこのような感じだろうか。
Sub Test() ' アドレスで直接指定。 Range("A1:D15").Select ' 使用範囲で指定。 Range("A1").CurrentRegion.Select ' シートの使用範囲で指定。 ActiveSheet.UsedRange.Select End Sub
上記の二つ目と三つ目は、意図しない範囲を指定する場合があるので要注意だ。
またアドレスで指定する場合も、行や列の追加・削除に自動で追従してくれない
ため、こちらも注意が必要となる。
一方で、テーブルの場合はどうだろう。
まず、テーブル全体を指定する場合がこちら。
Sub Test() Dim Tb As Excel.ListObject Set Tb = ActiveSheet.ListObjects(1) ' テーブル全体を指定。 Tb.Range.Select End Sub
テーブルの範囲を指定、ということで、直感的に理解し易いと思う。
また、Excelに限らずお馴染みの
- ヘッダー(一行目のラベル範囲)
- ボディ (データ範囲)
- フッター(集計行?)
で指定することも可能だ。
ヘッダーを指定して、色を付けてみよう。
Sub Test() Dim Tb As Excel.ListObject Set Tb = ActiveSheet.ListObjects(1) Tb.HeaderRowRange.Interior.Color = vbYellow End Sub
ボディは、このように選択する。
Sub Test() Dim Tb As Excel.ListObject Set Tb = ActiveSheet.ListObjects(1) Tb.DataBodyRange.Interior.Color = vbYellow End Sub
集計行は、こちらをチェックすると表示される。
集計行をフッターと呼んでよいか分からないが、このように指定できる。
Sub Test() Dim Tb As Excel.ListObject Set Tb = ActiveSheet.ListObjects(1) Tb.TotalsRowRange.Interior.Color = vbYellow End Sub
次回は、行と列の範囲についてご紹介。
明日に続きます。
参考まで。