Excel VBAでテーブル全体のセル範囲を取得・選択する方法|ListObjectの範囲操作をマスターする

Excelのテーブル(ListObject)は、構造化されたデータの管理に便利ですが、「テーブル全体をVBAで取得・選択したい」といった操作を正確に実装するためには、テーブルの範囲プロパティの使い方を理解しておく必要があります。

本記事では、VBAでテーブル全体のセル範囲を取得し、選択・操作する方法をご紹介いたします。


目次

想定される活用シーン

  • 指定したテーブルの全体を選択して、色付けや罫線などを一括適用したい。
  • テーブルの範囲をコピーして別シートに貼り付けたい。
  • テーブル全体のデータ構成を確認・検証したい。

VBAコードの例

以下のコードでは、アクティブシートに存在する「商品一覧」という名前のテーブルのセル範囲を取得し、選択状態にします。

Sub SelectEntireTable()

    Dim tbl As ListObject
    Set tbl = ActiveSheet.ListObjects("商品一覧")

    ' テーブル全体の範囲を選択
    tbl.Range.Select

End Sub

他の選択方法

1. テーブル名をセル名として参照する方法(構造化名前範囲)

Range("商品一覧").Select

※この方法は、名前定義と重複している場合や他シート参照時にエラーになることがあるため、確実性を求めるなら ListObjects("商品一覧").Range を使うのが安心です。

2. テーブルそのものを選択する方法(※セル範囲ではない)

ActiveSheet.ListObjects("商品一覧").Select

この構文は、テーブルオブジェクトを選択状態にするためのExcel独自動作であり、VBAの範囲オブジェクトとしての操作にはあまり向きません。


よく使うプロパティ

プロパティ名説明
.Rangeテーブル全体のセル範囲(ヘッダー+データ+集計行)
.DataBodyRangeデータ部分のみ(ヘッダー・集計行を除く)
.HeaderRowRangeヘッダー行のセル範囲
.TotalsRowRange集計行のセル範囲(表示時のみ)

まとめ

VBAを使えば、Excelテーブルのセル範囲を簡単に取得・選択できます。
ListObjects("テーブル名").Range を使うことで、見出しや集計行も含めたテーブル全体の範囲を正確に操作することが可能です。

テーブル全体に書式を適用したり、コピー処理や削除処理を行ったりする場面では、この方法が非常に有効です。ぜひ、日常業務にお役立てください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次