Excel VBAから、Excelのテーブル機能を操作する際に利用する、ListObjectオブジェクトは、比較的新しいオブジェクトで、解説されている書籍も少ないこともあってなのでしょうか、なかなか理解できないという方が少なくないようです。
ListObjectオブジェクト群のひとつ、ListColumnsに関連して、
「listcolumns index excel vba 戻り値」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
テーブルの列を操作するときに、
「ActiveSheet.ListObjects(1).ListColumns(1)」
といったオブジェクト式を書きます。
この「.ListColumns(1)」が何を返すのかを調べていた方による検索キーワードです。
ListColumns(Index)の戻り値はListColumnオブジェクト
ListColumns(Index)の戻り値は、オブジェクトブラウザーでListColumnsコレクションオブジェクトのItemプロパティを調べると、詳細ペインに「As ListColumn」と明示されているとおり、
ListColumnオブジェクトです。
ローカルウィンドウでListColumnオブジェクトを確認する
と申し上げたところで、じゃあListColumnってどんなオブジェクトなの?ということになるでしょう。
こういう状態のときに使うのは、ローカルウィンドウです。
以下のような簡単なテーブル(テストの成績表で集計行には平均が計算されています)をアクティブなワークシートに作成しておいて、
以下のSubプロシージャを実行しましょう。Dim obj As Object
Set obj = ActiveSheet.ListObjects(1).ListColumns(3)
Stop
End Sub
Stopステートメントで、ステップ実行モードになりますから、メニュー[表示]-[ローカルウィンドウ]からローカルウィンドウを表示して、オブジェクト変数・objの中身を覗いてみましょう。
[型]欄には、
Dim obj As Object
と総称オブジェクト型で宣言した「Object」と、実際の型「ListColumn」が表示されています。
このプロシージャでは、テーブルの3列目「得点」列を表すListColumnオブジェクトを、オブジェクト変数・objにセットしていますから、この得点列に関する情報を、オブジェクト変数・objは持っています。
[+]をクリックして展開すると、Nameの[値]には「得点」と表示され、
集計行には平均を表示させているので、TotalCalculationには平均であることを表す定数・xlTotalsCalculationAverageが表示されています。
また、3列目を表すListColumnオブジェクトを取得しているわけですから、Indexには「3」が表示されています。
ListColumnオブジェクトのRangeプロパティで、テーブルの列範囲を表すRangeオブジェクトを取得できますから、Range.Columnにはワークシート上の4列目・D列であることを表す「4」が表示されています。
こういった情報を持っているのが、ListColumnオブジェクトです。
最終更新日時:2019-10-23 15:34
Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » ListColumns.Item(Index)の戻り値は?