Excel VBAを使ってデータ範囲を簡単にテーブル化したいですか?ListObjects.Addメソッドの詳細な使い方やその引き数について、初心者から上級者までわかりやすく解説します。
ListObjects.Addメソッドの基本構文
Set ListObj = Worksheet.ListObjects.Add(SourceType, Source, Destination, XlListObjectHasHeaders, TableStyleName, TableName)
- ListObj:新しく作成されるテーブル(ListObject)を参照する変数。
- Worksheet: テーブルを作成するワークシート。
ListObjects.Addメソッドの引数とは
【SourceType (オプション)】
型: XlListObjectSourceType 列挙型
説明: テーブルのデータ ソースの種類が指定されます。
主な値:
xlSrcRange : Excelの範囲を使用します。
xlSrcExternal : 外部のデータソース、例えばデータベースやWeb書き込みなどを使用します。
xlSrcModel : Excel のデータモデルを使用します。Excel 2013 以降のバージョンでサポートされています。
xlSrcQuery : Power Query の書き込みをデータ ソースとして使用します。Excel 2013 以降のバージョンでサポートされています。
xlSrcXml : XMLデータを使用します。
【Source】
タイプ: 範囲/バリアント
説明: データのソースとなる範囲、または外部データソースのSourceTypeを指定して参照します。
【Destination (オプション)】
タイプ: 範囲 (オプション)
説明: 新しいテーブルを配置するセルの範囲。省略すると、Sourceの位置にテーブルが作成されます。
【XlListObjectHasHeaders (オプション)】
型: XlYesNoGuess 列挙型
説明: データ範囲にヘッダー行の有無
値:
xlYes:ヘッダーがある。
xlNo:ヘッダーがない。
xlGuess: Excelにヘッダーの状況を推測させます。
【TableStyleName (オプション)】
型: 文字列 (オプション)
説明: テーブルに適用するスタイルの名前。 省略した場合はテーブルスタイルが適用されます。
【TableName (オプション)】
型: 文字列 (オプション)
説明: 新しく作成するテーブルの名前。省略した場合は、Excel が自動的に名前を付けます(例: "Table1"、"Table2" など)。
ListObjects.Addでテーブルを作成するサンプルコード
データがA1からB10の範囲のテーブル化、ヘッダーを指定する場合のコードです。
Dim lo As ListObject
Set lo = ThisWorkbook.Sheets("Sheet1").ListObjects.Add(SourceType:=xlSrcRange, Source:=Range("A1:B10"), XlListObjectHasHeaders:=xlYes)
ListObjects.Addメソッドは、Excelのデータ範囲を効果的にテーブル化するためのツールです。引数を正しく指定すると様々な条件や設定のテーブルを作成することが可能になります。