Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » VBAでListObject・テーブルの列を選択する

VBAでListObject・テーブルの列を選択する

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

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

ListObjectオブジェクト・テーブルの、いずれかの列を選択する、Excel VBA(Visual Basic for Applications)のコードを探している方による検索でしょうか。

「excel vba テーブルの列を選択」
という検索キーワードだけでは詳細がわかりませんので、参考になりそうなシンプルなマクロを3つご紹介しておきます。

[スポンサードリンク]

インデックス番号を使ってテーブルの列を選択するサンプルマクロ

以下のマクロを実行すると、アクティブなシート上の1つ目のテーブルの、1列目が選択されます。


Sub 列を選択する_インデックス番号で指定()

 ActiveSheet.ListObjects(1).ListColumns(1).Range.Select

End Sub

「ActiveSheet.ListObjects(1)」は、アクティブシートから、1つ目のListObjectオブジェクト・テーブルを取得する、ListObjectオーブジェクト・テーブルを扱うなら理解が必須のオブジェクト式です。

つづく「.ListColumns(1)」が、テーブルの列を表すListColumnオブジェクトを取得している部分です。

ListObjectオブジェクトのListColumnsプロパティで、ListColumnsコレクションオブジェクトを取得して、

VBAでListObject・テーブルの列を選択する

ListColumns._Defaultプロパティに「1」を指定することで、1列目を表すListColumnオブジェクトを取得しています。

VBAでListObject・テーブルの列を選択する

ListColumnオブジェクトには、選択を行うSelect的なメソッドが存在しないため、ListColumn.Rangeプロパティで、テーブルの列を表すRangeオブジェクトを取得して、

VBAでListObject・テーブルの列を選択する

RangeオブジェクトのSelectメソッドで選択しています。

見出しの文字列を使ってテーブルの列を選択するマクロ

見出しの文字列・列名を使っても列を選択することができます。


Sub 列を選択する_列名で指定()

 ActiveSheet.ListObjects(1).ListColumns("氏名_姓").Range.Select

End Sub

上記のマクロを実行すると「氏名_姓」という列が選択されます。

ListColumnsコレクションオブジェクトのデフォルトプロパティに、列を特定する文字列を指定しているところだけが、先にご紹介したインデックス番号で列を選択するマクロと異なっています。

列のデータ部分のみを選択するサンプルマクロ

テーブルの列を選択したいという場合、見出し行や集計行を除外した、データ部分だけを選択したいというニーズもありそうです。


Sub 列を選択する_データ部分のみ()

 ActiveSheet.ListObjects(1).ListColumns(1).DataBodyRange.Select

End Sub

上記のマクロを実行すると、1列目のデータ部分だけを選択できます。

テーブルのデータ部分を表すRangeオブジェクトを取得するDataBodyRangeプロパティが、ListColumnオブジェクトにも用意されています。

VBAでListObject・テーブルの列を選択する

ListColumn.DataBodyRangeプロパティで、列のデータ部分だけを表すRangeオブジェクトを取得して、やっぱりRange.Selectで選択しています。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » VBAでListObject・テーブルの列を選択する

TrackBack:0

TrackBack URL

Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » VBAでListObject・テーブルの列を選択する

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

検索


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

.