スポンサーリンク

【VBA】ListColumns / ListRows の基本操作|列・行の数え方と活用法

この記事では、テーブルの 列(ListColumns) と 行(ListRows) を操作する基本について解説します。

Excelのテーブルは単なる範囲ではなく「列」と「行」がオブジェクトとして管理されており、それぞれに専用のプロパティやメソッドがあります。これを理解することで、VBAから柔軟に列・行を操作できるようになります。


スポンサーリンク

1. 列(ListColumns)の基本

テーブルの列は ListColumns コレクションで管理されています。

列数を数える

Sub GetColumnCount()
    Dim lo As ListObject
    Set lo = ThisWorkbook.Sheets("Sheet1").ListObjects("売上表")
    
    Debug.Print lo.ListColumns.Count '列数を取得
End Sub

例えば、テーブルに「商品名」「単価」「数量」「売上」の4列があれば、結果は「4」と表示されます。

特定の列を取得

  • 列番号で指定
Debug.Print lo.ListColumns(2).Name '2列目の列名を取得
  • 列名で指定
Debug.Print lo.ListColumns("数量").Name '"数量"列を取得

👉 列名を使った指定は可読性が高く、シート構造が変わっても影響を受けにくいため実務でおすすめです。


スポンサーリンク

2. 行(ListRows)の基本

テーブルの行は ListRows コレクションで管理されています。

行数を数える

Sub GetRowCount()
    Dim lo As ListObject
    Set lo = ThisWorkbook.Sheets("Sheet1").ListObjects("売上表")
    
    Debug.Print lo.ListRows.Count 'データ行数を取得
End Sub

5件のデータがあれば「5」と表示されます。
※ヘッダー行は含まれません。

特定の行を取得

  • 行番号で指定
Debug.Print lo.ListRows(1).Range.Address '1行目の範囲を取得

👉 これで「$A$2:$D$2(A2:D2)」といった形のアドレスが表示されます。


スポンサーリンク

3. 列・行の追加と削除

VBAから直接テーブルに行や列を追加・削除することも可能です。

列を追加

lo.ListColumns.Add '新しい列を最後に追加

行を追加

lo.ListRows.Add '新しい行を最後に追加

行を削除

lo.ListRows(2).Delete '2行目のデータを削除

スポンサーリンク

4. 列と行の使い分けのイメージ

項目コレクション代表的な用途
ListColumns列名の取得、列数の取得、列追加・削除
ListRows行数の取得、行の追加・削除、特定行の操作

5. まとめ

  • 列は ListColumns、行は ListRows で管理されている
  • 列数は ListColumns.Count行数は ListRows.Count で取得できる
  • 列・行は「番号」だけでなく「名前」でも参照可能
  • 列や行を追加・削除することで、テーブルを動的に拡張・編集できる

テーブルを単なる「範囲」としてではなく「列と行の集合体」として扱えるようになると、VBAでの操作が一気に強力になります。

コメント

タイトルとURLをコピーしました