Excel VBAでセル範囲をテーブル(ListObject)に変換する方法|見出し付きの一覧表を簡単作成

Excelでは、表形式のデータをテーブル形式(ListObject)に変換することで、フィルター・並べ替え・構造化参照など多くの機能を活用できるようになります。
本記事では、VBAを使って既存のセル範囲をテーブル化する処理
と、テーブルに任意の名前を付ける方法についてご紹介いたします。


目次

想定される用途

  • データ入力された範囲をテーブルに自動変換し、整理・分析しやすくしたい。
  • テーブル名をVBAで設定して、他のマクロから参照しやすくしたい。
  • ルーティン作業を自動化して、作業ミスや手間を減らしたい。

VBAコードの例

以下のコードでは、セル範囲 B3:E8 をテーブル形式に変換し、そのテーブルに「顧客一覧」という名前を付けています。

Sub ConvertRangeToTable()

    Dim dataArea As Range
    Dim tbl As ListObject

    ' データ範囲の設定(見出し含む)
    Set dataArea = ActiveSheet.Range("B3:E8")

    ' テーブルの作成と名前の設定
    Set tbl = ActiveSheet.ListObjects.Add(SourceType:=xlSrcRange, _
                                          Source:=dataArea, _
                                          XlListObjectHasHeaders:=xlYes)

    tbl.Name = "顧客一覧"

End Sub

コードのポイント解説

項目内容
ListObjects.Add(...)指定範囲をテーブルとして挿入します。
SourceType:=xlSrcRange範囲を指定して追加することを明示します。
XlListObjectHasHeaders:=xlYes見出し行が含まれていることを指定します。
.Name = "顧客一覧"作成したテーブルに任意の名前を設定します。

注意点

  • 見出し行を必ず含めて範囲を指定してください。xlYesを指定している場合、1行目は列名として認識されます。
  • テーブル名は一意である必要があります。すでに同名のテーブルがあるとエラーになります。
  • テーブルに変換した後は、構造化参照が有効になります(例:=顧客一覧[年齢] のような数式)。

応用例

  • 複数のシートで一括テーブル化するマクロ。
  • テーブルを作成後に色やスタイルを自動で適用。
  • 作成したテーブルから自動的に集計・グラフ化。

まとめ

VBAを使えば、任意のセル範囲をワンクリックでテーブル形式に変換し、見た目と機能を大幅に向上させることができます。
さらにテーブル名を指定しておけば、後続処理や他のマクロからの呼び出しも簡単になります。

表形式のデータをExcelの「テーブル」として活用したい方は、ぜひ本記事の手法をご利用ください。

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

この記事を書いた人

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

目次