リスト・テーブル(ListObjects オブジェクト)
ワークシート内のすべての ListObject オブジェクトのコレクションを表します。ListObject オブジェクトは、ワークシート内の 1 つのテーブルまたはリストを表します。
ListObjects オブジェクト(コレクション)を取得するには、Worksheet オブジェクトの ListObjects プロパティを使用します。
1行目が見出し、2行目以降にデータが入力されている表は、リスト(Excel 2003)やテーブル(Excel 2007 以降)として認識させることができます。
ListObjects コレクションの取得
【書式】
<取得>
object.ListObjects
引数・戻り値
- object ・・・ 対象となる Worksheet オブジェクトを指定します。
- 戻り値 ・・・ ListObjects コレクション
ListObjects オブジェクトの主なメソッド・プロパティ
Add メソッド
【書式】
object.Add ( [ sourcetype, source, linksource, xllistobjecthasheaders, destination, tablestylename ] )
引数・戻り値
- object ・・・ 対象となる ListObjects オブジェクトを指定します。
- sourcetype ・・・ 作成するテーブルの元データの種類を表す XlListObjectSourceType 列挙型 の定数を指定します。
定数 値 内容 xlSrcExternal 0 外部データソース(SharePoint Foundation サイト) xlSrcRange 1 セル範囲(既定値) xlSrcXml 2 XML xlSrcQuery 3 クエリ(Excel 2007 以降) xlSrcModel 4 PowerPivot モデル - source ・・・ 元データを指定します。
引数 sourcetype に、xlSrcRange が指定されている場合は、元データのセル範囲を Range オブジェクトで指定します。また、省略した場合は、アクティブセル領域が対象となります。
引数 sourcetype に、xlSrcExternal の場合は、データソースへの接続を示す配列を指定します。 - linksource ・・・ ブール型(Boolean)の値を使用します。外部データソースを ListObject オブジェクトにリンクするかどうかを指定します。引数 sourcetype が xlSrcExternal の場合は、既定値は True です。sourcetype が xlSrcRange の場合は無効となり、省略しないとエラーが発生します。
- xllistobjecthasheaders ・・・ 先頭行が見出しかどうかを示す XlYesNoGuess 列挙型 の定数を指定します。見出しを持たない場合は、自動的に生成されます。
定数 値 内容 xlGuess 0 見出しがあるかどうか、ある場合はその場所を Excel が特定します。 xlYes 1 範囲全体が並べ替えられません。 xlNo 2 範囲全体が並べ替えの対象になります(既定値)。 - destination ・・・ 新しく作成するリストオブジェクトの左上隅の配置先として単一のセルを Range オブジェクトで指定します。Range オブジェクトが複数のセルを参照する場合は、エラーが発生します。
引数 sourcetype が xlSrcExternal の場合は、引数 destination を必ず指定します。
引数 sourcetype が xlSrcRange の場合は、引数 destination は無視されます。
配置先に指定する範囲は、式で指定されている ListObjects コレクションを含むワークシート上にある必要があります。新しい列は、新しいリストに収まるよう 引数 destination の位置に挿入されます。したがって、既存のデータは上書きされません。 - tablestylename ・・・ テーブルに設定するスタイル名を指定します。省略した場合は、既定のテーブルスタイルが自動的に設定されます。この引数は、Excel 2007 以降のみ有効です。
テーブルに変換済みの表に対して、Add メソッドを実行するとエラーが発生します。
Count プロパティ
【書式】
<取得>
object.Count
引数・戻り値
- object ・・・ 対象となる ListObjects オブジェクトを指定します。
- 戻り値 ・・・ ワークシート内の ListObject の数。
Item プロパティ
【書式】
<取得>
object[ .Item ] ( index )
引数・戻り値
- object ・・・ 対象となる ListObjects オブジェクトを指定します。
- index ・・・ インデックス番号(1 から始まる整数値)または、テーブル名(文字列)を指定します。
- 戻り値 ・・・ ListObject オブジェクト
ListObject オブジェクト に関する詳細は、リスト・テーブル(ListObject オブジェクト) を参照してください。
ListObjects コレクション 使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Sub Sample_ListObject_Add() On Error GoTo ErrH Dim mysheet As Worksheet Set mysheet = ActiveSheet With mysheet.ListObjects.Add( _ SourceType:=xlSrcRange, _ Source:=Range("A1").CurrentRegion, _ xllistobjecthasheaders:=xlYes) .Name = "成績表01" .ShowTotals = True End With MsgBox mysheet.ListObjects.Count Exit Sub ErrH: With mysheet.ListObjects.Item("成績表01") .TableStyle = "" .ShowTotals = False .Unlist End With MsgBox mysheet.ListObjects.Count End Sub |
実行結果
サンプルVBAソース実行前
サンプルVBAソース実行(表をテーブル・リストに変換)
サンプルVBAソース実行(リスト・テーブルを通常の表に戻す)