「excel vba listobjects row 選択」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
ListObject・テーブルの、行を選択するVBA(Visual Basic for Applications)のコードを探している方による検索です。
テーブルの先頭行・1行目を選択するサンプルマクロ
ListObjectオブジェクトの階層構造が理解できていないと、戸惑ってしまうかもしれませんが、以下のようなコードで、テーブルの1行目・先頭行を選択できます。ActiveSheet.ListObjects(1).ListRows(1).Range.Select
End Sub
テーブルの1行目・先頭行を削除する、
ActiveSheet.ListObjects(1).ListRows(1).Delete
というコードをご紹介しています。
今回の先頭行を選択するExcel VBAのコードは、これとかなり似ていますが、少しだけ階層が深くなっています。
テーブルの行を表すListRowオブジェクトには、選択を行うメソッドが用意されていないためです。
ですから、ListRowオブジェクトのRangeプロパティでテーブルの行を表すRangeオブジェクトを取得して、
RangeオブジェクトのSelectメソッドで選択を行っています。
テーブルの最終行を選択するサンプルマクロ
以下のようなマクロで、テーブルの最終行を選択できます。
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
- Newer:カーソルのある文・センテンスをWord VBAで削除する
- Older:VBAで表示モードをスライド一覧にする
Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » VBAでListObject・テーブルの行を選択する