Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » ListObject・テーブルのDataBodyRangeを利用するExcelマクロ


ListObject・テーブルのDataBodyRangeを利用するExcelマクロ

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「エクセル vba テーブル bodyrange」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

BodyRangeという名前のオブジェクト・プロパティ・メソッドは存在しない

オブジェクトブラウザーで「bodyrange」を検索しても、BodyRangeという名前のオブジェクト・プロパティ・メソッドは見当たりませんが、DataBodyRangeプロパティが、ListObjectオブジェクトに存在します。

ListObject・テーブルのDataBodyRangeを利用するExcelマクロ

「エクセル vba テーブル bodyrange」
という検索は、このListObject.DataBodyRangeプロパティについて調べていらしたのでしょうか。

[スポンサードリンク]

ListObject.DataBodyRangeを使ったサンプルマクロ

詳細がわかりませんので、ListObject.DataBodyRangeプロパティを使った簡単なマクロをご紹介しておきます。


Sub ListObjectのDataBodyRangeを確認する()

 With ActiveSheet.ListObjects(1).DataBodyRange
  .Select
  MsgBox .Address(False, False)
  MsgBox .Rows.Count
 End With

End Sub

ListObjectオブジェクト・テーブルの存在するワークシートがアクティブな状態で上記のマクロを実行すると、テーブルの見出し行・集計行を除いた部分が選択され、セル番地と行数が順番にメッセージボックスに表示されます。

ListObject.DataBodyRangeはRangeオブジェクトを返す

オブジェクトブラウザーで確認するとわかるとおり、

ListObject・テーブルのDataBodyRangeを利用するExcelマクロ

ListObjectオブジェクトのDataBodyRangeプロパティは、Rangeオブジェクトを返します。

ですから上記のマクロは結局、RangeオブジェクトのSelectメソッドで選択を行い、RangeオブジェクトのAddressプロパティでセル番地を取得し、RangeオブジェクトのRowsプロパティで行を表すRangeオブジェクトを取得してそのCountプロパティで行数を取得しているわけです。

関連語句
Visual Basic for Applications, listobject 見出しを除いた range
[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » ListObject・テーブルのDataBodyRangeを利用するExcelマクロ

TrackBack:1

TrackBack URL
VBAでListObject・テーブルの列を選択する from インストラクターのネタ帳
ListObjectオブジェクト・テーブルの列を選択するExcel(エクセル)マクロをご紹介しています。

Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » ListObject・テーブルのDataBodyRangeを利用するExcelマクロ

「ListObjectオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.