この記事では、テーブルの 列(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での操作が一気に強力になります。
コメント