方法 : データに ListObject 列を割り当てる
DataTable に ListObject コントロールをバインドする場合、リストにすべての列を表示したくなかったり、データにバインドされていない列が存在したりします。SetDataBinding メソッドを呼び出すときに、ListObject に表示する列をマップできます。
対象: このトピックの情報は、Excel 2013 と Excel 2010 のドキュメント レベルのプロジェクトおよびアプリケーション レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。
関連のビデオ デモについては、「How Do I: Create a List in Excel that is Connected to a SharePoint List? (操作方法: SharePoint リストに関連付けられた Excel のリストを作成する)」を参照してください。
列のマップ
リスト内の列にデータ テーブルをマップするには
クラス レベルで DataTable を作成します。
Dim table As System.Data.DataTable = New System.Data.DataTable("Employees")
System.Data.DataTable table = new System.Data.DataTable("Employees");
サンプルの列とデータを 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");
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 ブックの拡張