ExcelマクロVBA入門
第130回.テーブル操作の概要(ListObject)

Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説
最終更新日:2019-05-12

第130回.テーブル操作の概要(ListObject)


VBA テーブル ListObject

テーブルのVBAでの操作で使用するオブジェクトの概要の説明です、


テーブルは、セルの範囲を表(テーブル)に変換することで、
関連するデータの管理と分析を容易にできるエクセルの機能で、以前はリストと呼ばれていました。
テーブルを作成して書式設定することで、データを視覚的にグループ化して分析しやすくできます。

テーブルの全体的な構成は
・テーブル全体
・見出し行
・データ範囲
・集計列
・集計行
VBAでは、これらのオブジェクトを使い各要素にアクセスします。
テーブル全体のオブジェクトがListObjectで、
シート内に複数テーブルが作成可能なので、
シート内のListObjectのコレクションがListObjectsになります。

ListObjects コレクション

ワークシート内の全てのListObjectオブジェクト(1つのテーブル)のコレクションです。



メソッド 説明
Add 新しいリストオブジェクトを作成します。

プロパティ 説明
Application 対象となるオブジェクトが指定されない場合は、Excelアプリケーション(Applicationオブジェクト)を返します。
対象となるオブジェクトが指定された場合は、指定されたオブジェクトを作成したApplicationオブジェクトを返します。
OLEオートメーションを使っていて、オブジェクトのアプリケーションにアクセスするときなどに、このプロパティを使います。
値の取得のみ可能です。
Count コレクションに含まれるオブジェクトの数を表す整数型(Integer)の値を返します。
Creator 現在のオブジェクトが作成されたアプリケーションを示す32ビットの整数を取得します。
値の取得のみ可能です。長整数型(Long)の値を使用します。
Item コレクションから単一のオブジェクトを返します。
Parent 指定されたオブジェクトの親オブジェクトを取得します。
値の取得のみ可能です。

太字は特に覚えるべき重要なメンバーになります。
Addメソッドについてのみ詳細を掲載しておきます。

Addメソッド
ListObjects.Add(SourceType,Source,linksource,xllistthasheaders,Destination,TableStyleName)



パラメーター 説明
SourceType クエリで使用されるソースの種類を指定します。
xlSrcExternal 外部データ ソース (Microsoft SharePoint Foundation サイト)
xlsrcmodel PowerPivot モデル
xlSrcQuery クエリ
xlSrcRange 範囲
xlSrcXml XML
Source SourceType=xlSrcRangeの場合は、省略可能です。
データソースを示すRangeオブジェクトの値を使用します。
この引数を省略すると、Sourceにはリスト範囲検出コードが返す既定の範囲が指定されます。
SourceType=xlSrcExternalの場合は、データソースへの接続を示す1つの配列を指定します。
配列の各要素には、文字列型(String)の値を次のように格納します。
LinkSource 外部データソースをListObjectオブジェクトにリンクするかどうかを指定します。
SourceTypeがxlsrcexternalの場合、既定値はTrueになります。
SourceTypeがxlsrcrange/省略されている場合は無効です。
省略した場合は、エラーが返されます。
XlListObjectHasHeaders インポートされているデータに列ラベルがあるかどうかを示すXlYesNoGuess列挙型定数を指定します。
ソースにヘッダーが含まれていない場合、Excelは自動的にヘッダーを生成します。
既定値はxlguessです。
Destination 新しいリストオブジェクトの左上隅のリンク先として単一セル参照を指定するRangeオブジェクト。
Rangeオブジェクトが複数のセルを参照する場合は、エラーが生成されます。
SourceTypeがxlsrcexternalに設定されている場合は、Destination引数を指定する必要があります。SourceTypeがxlsrcrange出力に設定されている場合、引数Destinationは無視されます。
移動先の範囲は、式で指定されたlistobjectsコレクションが含まれているワークシート上にある必要があります。
新しい列は、新しいリストに適合するようにコピー先に挿入されます。
したがって、既存のデータは上書きされません。
TableStyleName TableStyleの名前。
たとえば、"TableStyleLight1"のようになります。

ListObject オブジェクト

ワークシート内のテーブルを表します。
ListObjectsコレクションのメンバーです。

メソッド 説明
Delete ListObjectオブジェクトを削除し、ワークシートからセルデータをクリアします。
ExportToVisio ListObjectオブジェクトをVisioにエクスポートします。
Publish ListObjectオブジェクトをMicrosoftSharePointFondationを実行しているサーバーに公開します。
Refresh MicrosoftSharePointFondationを実行しているサーバーからリストの現在のデータとスキーマを取得します。
このメソッドは、リストがSharePointサイトにリンクされている場合にだけ使用できます。
SharePointサイトが利用できない場合は、このメソッドを呼び出すとエラーが返されます。
Resize Resizeメソッドを実行すると、ListObjectオブジェクトが新しい範囲に合わせてサイズ調整されます。
セルの挿入や移動は行われません。
Unlink MicrosoftSharePointFondationサイトへのリンクをリストから削除します。Nothingを返します。
Unlist ListObjectオブジェクトからリストとしての機能を削除します。
このメソッドを実行すると、リストを構成していたセル範囲は、通常のデータの範囲となります。

プロパティ 説明
Active ワークシート内にあるListObjectオブジェクトがアクティブかどうか、つまり作業中のセルがListObjectオブジェクトの範囲内に存在するかどうかを示すブール型(Boolean)の値を返します。
値の取得のみ可能です。ブール型(Boolean)の値を使用します。
AlternativeText 指定されたテーブルに関連付ける代替テキストを設定します。
値の取得および設定が可能です。
Application 対象となるオブジェクトが指定されない場合は、Excelアプリケーションを返します。
対象となるオブジェクトが指定された場合は、指定されたオブジェクトを作成したApplicationオブジェクトを返します。
OLEオートメーションを使っていて、オブジェクトのアプリケーションにアクセスするときなどに、このプロパティを使います。
値の取得のみ可能です。
AutoFilter オートフィルターを使ってテーブルにフィルターをかけます。
値の取得のみ可能です。
Comment リストオブジェクトに関連付けられたコメントを設定します。
値の取得および設定が可能です。文字列型(String)の値を使用します。
Creator 現在のオブジェクトが作成されたアプリケーションを示す32ビットの整数を取得します。
値の取得のみ可能です。
長整数型(Long)の値を使用します。
DataBodyRange テーブルの見出しの行を除く、値の範囲を表すRangeオブジェクトを取得します。
値の取得のみ可能です。
DisplayName 指定されたListObjectオブジェクトの表示名を設定します。
値の取得および設定が可能です。文字列型(String)の値を使用します。
DisplayRightToLeft Trueの場合、指定されたListObjectの表示が右から左の表示方向になります。
Falseの場合、オブジェクトを左から右の表示にします。
値の取得のみ可能です。ブール型(Boolean)の値を使用します。
HeaderRowRange 1つのリスト(リスト:互いに関連するデータが入力された一連の行または[リストの作成]コマンドを使ってデータシートとして機能するように作成された一連の行。)に関するヘッダー行の範囲を表すRangeオブジェクトを取得します。
値の取得のみ可能です。Rangeオブジェクト型の値を使用します。
InsertRowRange 指定されたListObjectオブジェクトに関する挿入行(挿入行:リストにおいて、ユーザーにデータ入力を促すための特殊な行です。
挿入行は、アスタリスクで示されます。)(存在する場合)を表すRangeオブジェクトを返します。
値の取得のみ可能です。Rangeオブジェクト型の値を使用します。
ListColumns ListObjectオブジェクト内にあるすべての列を表す1つのListColumnsコレクションを取得します。
値の取得のみ可能です。
ListRows ListObjectオブジェクト内にあるデータのすべての行を表す1つのListRowsオブジェクトを取得します。
値の取得のみ可能です。
Name ListObjectオブジェクトの名前を表す文字列型(String)の値を取得または設定します。
Parent 指定されたオブジェクトの親オブジェクトを取得します。
値の取得のみ可能です。
QueryTable ListObjectオブジェクトにサーバーへのリンクを提供するQueryTableオブジェクトを取得します。
値の取得のみ可能です。
Range 上位リストの指定されたリストオブジェクトが適用される範囲を表すRangeオブジェクトを取得します。
SharePointURL 指定したListObjectオブジェクトに対応する、SharePointリストのURLを表す文字列型(String)の値を返します。
値の取得のみ可能です。文字列型(String)の値を使用します。
ShowAutoFilter オートフィルターを表示するかどうかを示します。ブール型(Boolean)の値を使用します。
値の取得および設定が可能です。
ShowHeaders 指定されたListObjectオブジェクトに対してヘッダー情報を表示するかどうかを設定します。
値の取得および設定が可能です。ブール型(Boolean)の値を使用します。
ShowTableStyleColumnStripes 指定されたListObjectオブジェクトに対して列のストライプの表スタイルが使用されるかどうかを設定します。
値の取得および設定が可能です。ブール型(Boolean)の値を使用します。
ShowTableStyleFirstColumn 指定されたListObjectオブジェクトに対し、最初の列を書式設定するかどうかを設定します。
値の取得および設定が可能です。ブール型(Boolean)の値を使用します。
ShowTableStyleLastColumn 指定されたListObjectオブジェクトに対し、最後の列を表示するかどうかを設定します。
値の取得および設定が可能です。ブール型(Boolean)の値を使用します。
ShowTableStyleRowStripes 指定されたListObjectオブジェクトに対して行のストライプの表スタイルが使用されるかどうかを設定します。
値の取得および設定が可能です。ブール型(Boolean)の値を使用します。
ShowTotals 集計行を表示するかどうかを示します。ブール型(Boolean)の値を使用します。
値の取得および設定が可能です。
Sort ListObjectコレクションの並べ替え列と並べ替え順序を取得または設定します。
SourceType リストの現在のソースを表すXlListObjectSourceTypeクラスの定数を取得します。
Summary 指定されたテーブルの代替テキスト文字列に関連付けられた説明を設定します。
値の取得および設定が可能です。
TableStyle 指定されたListObjectオブジェクトに対する表スタイルを設定します。
値の取得および設定が可能です。バリアント型(Variant)の値を使用します。
TotalsRowRange 指定したListObjectオブジェクトに集計行が存在する場合、その集計行を表すRangeオブジェクトを取得します。
値の取得のみ可能です。
XmlMap 指定したテーブルに適用されているスキーママップを表すXmlMapオブジェクトを返します。
値の取得のみ可能です。

太字は特に覚えるべき重要なメンバーになります。

テーブル操作のVBAコード

次回は具体的なVBAコードをパターン別に一気に掲載します。

第131回.テーブル操作のVBAコード(ListObject)
テーブル操作の具体的なVBAコードをパターン別に掲載しますテーブルの全体的な構成は ・テーブル全体 ・見出し行 ・データ範囲 ・集計列 ・集計行 VBAではこれらのオブジェクトを使い各要素にアクセスします。テーブル全体のオブジェクトがListObjectでシート内に複数テーブルが作成可能なので



同じテーマ「マクロVBA入門」の記事

Shell関数
APIについて(Win32API)
Workbookのイベントプロシージャー
Worksheetのイベントプロシージャー
入力規則(Validation)
他のブックのマクロを実行(Runメソッド)
マクロをショートカットで起動(OnKeyメソッド)
レジストリの操作(SaveSetting,GetSetting,GetAllSettings,DeleteSetting)
テーブル操作の概要(ListObject)
テーブル操作のVBAコード(ListObject)
その他のExcel機能(グループ化、重複の削除、オートフィル等)


新着記事NEW ・・・新着記事一覧を見る

CSVの読み込み方法(ジャグ配列)|VBAサンプル集(7月15日)
その他のExcel機能(グループ化、重複の削除、オートフィル等)|VBA入門(7月14日)
オートフィルタ退避回復クラスを複数シート対応させるVBAクラス|VBA技術解説(7月6日)
オートフィルタを退避回復するVBAクラス|VBA技術解説(7月6日)
IfステートメントとIIF関数とMax関数の速度比較|VBA技術解説(6月23日)
Withステートメントの実行速度と注意点|VBA技術解説(6月6日)
VBA+SeleniumBasicで検索順位チェッカー(改)|VBA技術解説(6月2日)
マクロでShift_JIS文字コードか判定する|VBA技術解説(6月1日)
Shift_JISのテキストファイルをUTF-8に一括変換|VBAサンプル集(5月31日)
「VBAによる解析シリーズその2 カッコ」をやってみた|エクセル(5月21日)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.変数とデータ型(Dim)|ExcelマクロVBA入門
5.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
6.繰り返し処理(For Next)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.ExcelマクロVBAの基礎を学習する方法|エクセルの神髄
10.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説



  • >
  • >
  • >
  • テーブル操作の概要(ListObject)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。




    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
    本文下部へ