方法 : データに ListObject 列を割り当てる

更新 : 2007 年 11 月

対象

このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。

ドキュメント レベルのプロジェクト

  • Excel 2007

  • Excel 2003

アプリケーション レベルのプロジェクト

  • Excel 2007

詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

DataTableListObject コントロールをバインドする場合、リストにすべての列を表示したくなかったり、データにバインドされていない列が存在したりします。SetDataBinding メソッドを呼び出すときに、ListObject に表示する列をマップできます。

列のマップ

リスト内の列にデータ テーブルをマップするには

  1. クラス レベルで DataTable を作成します。

    Dim table As System.Data.DataTable = New System.Data.DataTable("Employees")
    
    System.Data.DataTable table = new System.Data.DataTable("Employees");
    
  2. サンプルの列とデータを Sheet1 クラス (ドキュメント レベルのプロジェクトの場合) または ThisAddIn クラス (アプリケーション レベルのプロジェクトの場合) の Startup イベント ハンドラに追加します。

    table.Columns.Add("Id", GetType(Int32))
    table.Columns.Add("FirstName", GetType(String))
    table.Columns.Add("LastName", GetType(String))
    table.Columns.Add("Title", GetType(String))
    
    table.Rows.Add(1, "Nancy", "Anderson", "Sales Representative")
    table.Rows.Add(2, "Robert", "Brown", "Sales Representative")
    
    table.Columns.Add("Id", typeof(int));
    table.Columns.Add("FirstName", typeof(string));
    table.Columns.Add("LastName", typeof(string));
    table.Columns.Add("Title", typeof(string));
    
    table.Rows.Add(1, "Nancy", "Anderson", "Sales Representative");
    table.Rows.Add(2, "Robert", "Brown", "Sales Representative");
    
  3. SetDataBinding メソッドを呼び出し、表示する順序で列名を渡します。新規作成した DataTable にリスト オブジェクトがバインドされますが、リスト オブジェクト内の列の順序は、DataTable に表示される順序とは異なります。

    Me.List1.AutoSetDataBoundColumnHeaders = True
    Me.List1.SetDataBinding(table, "", "Title", "LastName", "FirstName")
    
    this.list1.AutoSetDataBoundColumnHeaders = true;
    this.list1.SetDataBinding(table, "", "Title", "LastName", "FirstName");
    

マップしない列の指定

DataTable に列をマップする場合、空の文字列を渡すことによって、データにバインドされない特定の列を指定することもできます。データにバインドされない新しい列が、ListObject コントロールに追加されます。

ListObject 列をマップするときに非マップ列を指定するには

  • SetDataBinding メソッドを呼び出し、表示する順序で列名を渡します。空の文字列を使用して、非マップ列を追加する位置を指定します。このケースでは、タイトルの列と姓の列の間に追加します。

    Me.List1.SetDataBinding(table, "", "Title", "", "LastName", "FirstName")
    
    this.list1.SetDataBinding(table, "", "Title", "", "LastName", "FirstName");
    

コードのコンパイル方法

このコード例では、このコードが表示されるワークシート上に、list1 という名前の ListObject が存在することを前提にしています。

参照

処理手順

方法 : ListObject コントロールにデータを読み込む

概念

アプリケーション レベルのアドインにおける実行時の Word 文書や Excel ブックの拡張

Excel のアプリケーション レベルのアドインの開発

実行時の Office ドキュメントへのコントロールの追加

ListObject コントロール

ListObject 列と行順序の永続性について

その他の技術情報

Office ドキュメントのコントロール

Excel のホスト コントロール