Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » ListColumns.Item(Index)の戻り値は?

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

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」と明示されているとおり、

ListColumns.Item(Index)の戻りは?

ListColumnオブジェクトです。

ListColumns.Item(Index)の戻りは?

ローカルウィンドウでListColumnオブジェクトを確認する

と申し上げたところで、じゃあListColumnってどんなオブジェクトなの?ということになるでしょう。

こういう状態のときに使うのは、ローカルウィンドウです。

以下のような簡単なテーブル(テストの成績表で集計行には平均が計算されています)をアクティブなワークシートに作成しておいて、

ListColumns.Item(Index)の戻りは?

以下のSubプロシージャを実行しましょう。
Sub ListColumnsItemの戻りを確認する()
 Dim obj As Object
 Set obj = ActiveSheet.ListObjects(1).ListColumns(3)
 Stop
End Sub

Stopステートメントで、ステップ実行モードになりますから、メニュー[表示]-[ローカルウィンドウ]からローカルウィンドウを表示して、オブジェクト変数・objの中身を覗いてみましょう。

[型]欄には、
  Dim obj As Object
と総称オブジェクト型で宣言した「Object」と、実際の型「ListColumn」が表示されています。

ListColumns.Item(Index)の戻りは?

このプロシージャでは、テーブルの3列目「得点」列を表すListColumnオブジェクトを、オブジェクト変数・objにセットしていますから、この得点列に関する情報を、オブジェクト変数・objは持っています。

[+]をクリックして展開すると、Nameの[値]には「得点」と表示され、

ListColumns.Item(Index)の戻りは?

集計行には平均を表示させているので、TotalCalculationには平均であることを表す定数・xlTotalsCalculationAverageが表示されています。

ListColumns.Item(Index)の戻りは?

また、3列目を表すListColumnオブジェクトを取得しているわけですから、Indexには「3」が表示されています。

ListColumns.Item(Index)の戻りは?

ListColumnオブジェクトのRangeプロパティで、テーブルの列範囲を表すRangeオブジェクトを取得できますから、Range.Columnにはワークシート上の4列目・D列であることを表す「4」が表示されています。

ListColumns.Item(Index)の戻りは?

こういった情報を持っているのが、ListColumnオブジェクトです。

最終更新日時:2019-10-23 15:34

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » ListColumns.Item(Index)の戻り値は?

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

検索


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

.