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

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

対象:Excel2007, Excel2010, Excel2013

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

ListObject・テーブルの、行を選択するVBA(Visual Basic for Applications)のコードを探している方による検索です。

[スポンサードリンク]

テーブルの先頭行・1行目を選択するサンプルマクロ

ListObjectオブジェクトの階層構造が理解できていないと、戸惑ってしまうかもしれませんが、以下のようなコードで、テーブルの1行目・先頭行を選択できます。
Sub テーブルの先頭行を選択する()
 ActiveSheet.ListObjects(1).ListRows(1).Range.Select
End Sub

テーブルの1行目・先頭行を削除する
  ActiveSheet.ListObjects(1).ListRows(1).Delete
というコードをご紹介しています。

今回の先頭行を選択するExcel VBAのコードは、これとかなり似ていますが、少しだけ階層が深くなっています。

テーブルの行を表すListRowオブジェクトには、選択を行うメソッドが用意されていないためです。

ListObject・テーブルの行を選択するExcel VBAのサンプル

ですから、ListRowオブジェクトのRangeプロパティでテーブルの行を表すRangeオブジェクトを取得して、

ListObject・テーブルの行を選択するExcel VBAのサンプル

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

テーブルの最終行を選択するサンプルマクロ

以下のようなマクロで、テーブルの最終行を選択できます。

Sub テーブルの最終行を選択する()
 With ActiveSheet.ListObjects(1).ListRows
  .Item(.Count).Range.Select
 End With
End Sub

これも、既にご紹介しているテーブルの最終行を削除するコード
  With ActiveSheet.ListObjects(1).ListRows
   .Item(.Count).Delete
  End With
とよく似ています。

先の1行目を選択するマクロと同様、ListRowオブジェクトのRangeプロパティでRangeオブジェクトを取得して、RangeオブジェクトのSelectメソッドを実行しています。

ListObjectを使うのならオブジェクトモデルを理解するのが得策

この記事に限らない話ですが、ListObjectオブジェクトは、登場してからまだ時間があまり経過していないオブジェクトであるため、世の中で紹介されているサンプルはまだ多くはありません。

今後もExcel VBAを使っていこうという方の場合、サンプルを探し回るよりも、オブジェクトブラウザーを使ってオブジェクトモデルをご自身の頭に叩き込んでしまうほうが、いいのではないかと思います。

最終更新日時:2020-05-01 23:55

[スポンサードリンク]

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

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

検索


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

.