VBA入門
テーブル操作の概要(ListObject)

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
最終更新日:2022-08-01

第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 指定されたオブジェクトを作成したApplicationオブジェクトを返します。
OLEオートメーションを使っていて、オブジェクトのアプリケーションにアクセスするときなどに、このプロパティを使います。
値の取得のみ可能です。
AutoFilter オートフィルターを使ってテーブルにフィルターをかけます。
値の取得のみ可能です。
Comment リストオブジェクトに関連付けられたコメントを設定します。
値の取得および設定が可能です。文字列型(String)の値を使用します。
Creator 現在のオブジェクトが作成されたアプリケーションを示す32ビットの整数を取得します。
値の取得のみ可能です。
長整数型(Long)の値を使用します。
DataBodyRange テーブルの見出しの行を除く、値の範囲を表すRangeオブジェクトを取得します。
値の取得のみ可能です。
DisplayName 指定されたListObjectオブジェクトの表示名を設定します。
値の取得および設定が可能です。
文字列型(String)の値を使用します。
DisplayRightToLeft Trueの場合、指定されたListObjectの表示が右から左の表示方向になります。
Falseの場合、オブジェクトを左から右の表示にします。
値の取得のみ可能です。
ブール型(Boolean)の値を使用します。
HeaderRowRange リストのヘッダー 行の範囲を表すRangeオブジェクトを返します。
値の取得のみ可能です。Rangeオブジェクト型の値を使用します。
InsertRowRange 指定したListObjectオブジェクトの Insert 行 (存在する場合) を表す 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オブジェクトを返します。
値の取得のみ可能です。

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

Range

テーブルの範囲全体。
VBA テーブル ListObject

HeaderRowRange

テーブルのヘッダー 行の範囲。
VBA テーブル ListObject

DataBodyRange

テーブルの見出しの行を除く、値の範囲
VBA テーブル ListObject

ListColumns

テーブルの列。
VBA テーブル ListObject

ListRows

テーブルの行。
VBA テーブル ListObject


テーブル操作のVBAコード

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

第131回.テーブル操作のVBAコード(ListObject)
・テーブル操作のVBAサンプル使用例 ・テーブルに設定 ・テーブルスタイル一覧 ・テーブルの存在確認 ・テーブルを範囲に変換 ・テーブルの範囲を再設定 ・テーブルのセルに値を入れる ・テーブルのセルの数式変更 ・テーブルの行・列のクリア ・テーブルの列の数式設定 ・テーブルの行挿入・削除 ・テーブルの列挿入・削除 ・テーブルのオートフィルター ・テーブルの並べ替え(ソート) ・テーブルの集計行挿入・削除・非表示 ・テーブルの右端に集計列追加 ・テーブルに新しい行列を含めない ・テーブルの使い方の基本 ・サイト内のテーブルに関するページ
VBA100本ノック
・VBA100本ノック目次 ・VBA100本ノック 魔球編 ・VBA100本ノック 迷宮編
44本目:全テーブル一覧作成
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
45本目:テーブルに列追加
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
53本目:テーブルの扱いと年齢計算
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ




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

第123回.APIについて(Win32API)
第124回.Workbookのイベントプロシージャー
第125回.Worksheetのイベントプロシージャー
第130回.テーブル操作の概要(ListObject)
第131回.テーブル操作のVBAコード(ListObject,DataBodyRange)
第142回.テーブル全件処理とデータ最終行(ListObject,DataBodyRange)
第127回.他のブックのマクロを実行(Runメソッド)
第128回.マクロをショートカットで起動(OnKeyメソッド)
第129回.レジストリの操作(SaveSetting,GetSetting,GetAllSettings,DeleteSetting)
第133回.引数の数を可変にできるパラメーター配列(ParamArray)
第134回.Errオブジェクトとユーザー定義エラー


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

数字(1~50)を丸付き数字に変換するVBA|VBA技術解説(2022-11-15)
TEXTAFTER関数(テキストの指定文字列より後ろの部分を返す)|エクセル入門(2022-11-14)
TEXTBEFORE関数(テキストの指定文字列より前の部分を返す)|エクセル入門(2022-11-14)
TEXTSPLIT関数(列と行の区切り記号で文字列を分割)|エクセル入門(2022-11-12)
LAMBDA以降の新関数はVBAで使えるか|VBA技術解説(2022-11-11)
WRAPCOLS関数(1次元配列を指定数の列で折り返す)|エクセル入門(2022-11-08)
WRAPROWS関数(1次元配列を指定数の行で折り返す)|エクセル入門(2022-11-08)
EXPAND関数(配列を指定された行と列に拡張する)|エクセル入門(2022-11-07)
TAKE関数(配列の先頭/末尾から指定行/列数を取得)|エクセル入門(2022-11-06)
DROP関数(配列の先頭/末尾から指定行/列数を除外)|エクセル入門(2022-11-06)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.Excelショートカットキー一覧|Excelリファレンス
7.並べ替え(Sort)|VBA入門
8.エクセルVBAでのシート指定方法|VBA技術解説
9.マクロって何?VBAって何?|VBA入門
10.ExcelマクロVBAの基礎を学習する方法|エクセルの神髄




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


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



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