Excel VBAでテーブルのレコード数と列数を取得する方法|ListRows.CountとListColumns.Countの活用

Excelで構造化されたテーブル(ListObject)を利用することで、データ管理がより効率的になります。
VBAを活用すれば、テーブル内のレコード数(行数)や列数(項目数)を簡単に取得することができます。

本記事では、ListRows.CountListColumns.Countを使って、テーブルのサイズ情報を取得する方法をご紹介いたします。


目次

想定される活用シーン

  • データ件数が増減するたびにレコード数を確認したい。
  • 列数に応じて処理対象を動的に変更したい。
  • テーブルの構造を監視・検証したい(テンプレートの品質管理など)。

基本構文:テーブルのレコード数と列数を取得する

Sub GetTableRecordInfo()

    Dim tbl As ListObject
    Set tbl = ActiveCell.ListObject ' アクティブセルが含まれるテーブルを取得

    ' 結果をシートに出力
    Range("E2").Value = "レコード数"
    Range("F2").Value = tbl.ListRows.Count

    Range("E3").Value = "列数"
    Range("F3").Value = tbl.ListColumns.Count

End Sub

.ListObjectとは?

.ListObjectは、指定したセルが属するテーブル(ListObject)を取得するためのプロパティです。
アクティブセルがテーブルの中にある場合、そのテーブル全体を自動的に取得できます。


.ListRows.Count.ListColumns.Countの意味

プロパティ説明
.ListRows.Countテーブルの「データ行数」(見出し行は含まれません)
.ListColumns.Countテーブルの「列数」(項目の数)

応用:複数テーブルの情報を一括取得

Sub GetAllTableInfo()

    Dim tbl As ListObject
    Dim i As Integer: i = 2

    For Each tbl In ActiveSheet.ListObjects
        Cells(i, 1).Value = tbl.Name
        Cells(i, 2).Value = tbl.ListRows.Count
        Cells(i, 3).Value = tbl.ListColumns.Count
        i = i + 1
    Next

End Sub

まとめ

テーブルのレコード数や列数をVBAで取得することで、データの構造をプログラム的に把握し、動的な処理に活用できます。
帳票処理やデータベース風の管理を行う上でも非常に有用な機能です。

特に、ユーザーが頻繁にデータを追加・削除する環境では、処理の正確性や自動化の安定性を高めるために必須とも言えるテクニックです。

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

この記事を書いた人

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

目次