社内SEになったのでテーブルをVBAで操作してみたい(ListObject)

テーブルをVBAで操作するなら

ListObjectを使うようです。

値の更新だけでなく、書式の変更やヘッダ情報取得、集計情報などを除くデータ部分のみ取得など、様々な操作が可能だとか。

テーブルが存在するか確認しよう

この確認をせずにコードを実行してListObjectが見当たらない旨のエラーが出たことにより、原因不明で暫く困惑していました。

Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")

' 面倒ですがシートも指定しないといけません。
If TableExists(ws, "テーブル名") Then
    MsgBox "テーブルは存在します"
Else
    MsgBox "テーブルが見つかりません"
End If

' シート内にそもそもテーブルが存在するかを判定する場合
If ActiveSheet.ListObjects.Count = 0 Then Exit Sub

テーブルの操作準備

この確認をせずにコードを実行してListObjectが見当たらない旨のエラーが出たことにより、原因不明で暫く困惑していました。

Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet2")
Set tbl = ws.ListObjects("テーブル名")

行・列単位のデータクリア

3列目のデータをまるごと空にする例を示しています。

with ActiveSheet
   .Cells(1, 1).ListObject.ListColumns(3).DataBodyRange.ClearContents
end with

コメントを残す