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の「テーブル」として活用したい方は、ぜひ本記事の手法をご利用ください。

技術書の購入コストを抑えてスキルアップするなら

ここまで読んでいただきありがとうございます。最後に宣伝をさせてください。

プログラミングの技術書や参考書は、1冊3,000円〜5,000円するものも多く、出費がかさみがちです。Kindle Unlimitedであれば、月額980円で500万冊以上の書籍が読み放題となります。

気になる言語の入門書から、アルゴリズム、基本設計の専門書まで、手元のスマホやPCですぐに参照可能です。現在は「30日間の無料体験」や、対象者限定の「3か月499円プラン」なども実施されています。まずはご自身のアカウントでどのようなオファーが表示されるか確認してみてください。

[Kindle Unlimited 読み放題プランをチェックする]

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

この記事を書いた人

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

目次