Excelのテーブル(ListObject)をVBAで操作する際、**「構造化参照式(Structured Reference)」**を使用することで、より柔軟かつ読みやすいコードが記述できます。
本記事では、VBAで構造化参照を使用してテーブル全体、見出し、特定列を指定する方法をご紹介いたします。
目次
使用するテーブル名と構造
本記事では、以下のような構造のテーブル「請求一覧」を例にします。
商品名 | 単価 | 数量 | 金額 |
---|
1. テーブル全体を構造化参照で取得
テーブル全体(見出し+データ)を選択したい場合は、[#All]
を使います。
Range("請求一覧[#All]").Select
2. テーブルの見出し行のみを指定
見出し行だけを対象にするには、[#Headers]
を使います。
Range("請求一覧[#Headers]").Select
3. テーブルの特定列(フィールド)を指定
「商品名」列だけを取得したい場合は、以下のように指定します。
Range("請求一覧[商品名]").Select
列名は正確な見出し文字列と一致している必要がある点にご注意ください。
4. テーブルのデータ部分(見出し除く)を取得
テーブルのデータ部のみを対象にしたい場合は、以下のように[#Data]
を用います。
Range("請求一覧[#Data]").Select
5. テーブルの合計行(集計行)を指定(※使用している場合)
集計行が有効になっている場合は、以下のように[#Totals]
を使って指定できます。
Range("請求一覧[#Totals]").Select
まとめ
構造化参照式を使えば、以下のようにテーブルの各部分を明確に指定できます。
対象範囲 | 構造化参照式 |
---|---|
テーブル全体 | [#All] |
見出し行のみ | [#Headers] |
データ部分 | [#Data] |
合計行 | [#Totals] |
特定の列 | [列名] |
構造化参照式をうまく活用することで、コードの見通しが良くなり、ミスも減らすことができます。ぜひ業務での自動化にお役立てください。