次の方法で共有


ListObject コントロール

更新 : 2008 年 7 月

対象

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

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

  • Excel 2007

  • Excel 2003

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

  • Excel 2007

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

ListObject コントロールは、イベントを公開し、データにバインドできるリストです。リストをワークシートに追加すると、Visual Studio Tools for Office によって ListObject コントロールが作成されます。このコントロールは、Microsoft Office Excel オブジェクト モデルを走査しなくても、コードで直接使用できます。

コントロールの作成

ListObject コントロールは、デザイン時または実行時にドキュメント レベルのカスタマイズの Microsoft Office Excel ワークシートに追加できます。Visual Studio 2008 Service Pack 1 (SP1) では、アプリケーション レベルのアドインで実行時に ListObject コントロールを追加できるようになりました。詳細については、「方法 : ワークシートに ListObject コントロールを追加する」を参照してください。

2ttzcbhb.alert_note(ja-jp,VS.90).gifメモ :

既定では、動的に作成されたリスト オブジェクトは、ワークシートを閉じるときに、ホスト コントロールとしてワークシートに保持されません。詳細については、「実行時の Office ドキュメントへのコントロールの追加」を参照してください。

コントロールへのデータの連結

ListObject コントロールは、単純データ バインディングおよび複合データ バインディングをサポートします。ListObject コントロールは、デザイン時には DataSource プロパティおよび DataMember プロパティを使用して、また、実行時には SetDataBinding メソッドを使用して、データ ソースにバインドできます。

2ttzcbhb.alert_note(ja-jp,VS.90).gifメモ :

ListObject は、DataTable など、データ変更時にイベントを発生させるデータ ソースにバインドされると、自動的に更新されます。データ変更時にイベントを発生させないデータ ソースに ListObject をバインドする場合は、RefreshDataRow メソッドまたは RefreshDataRows メソッドを呼び出し、ListObject を更新する必要があります。

ワークシートのセルに繰り返しスキーマ要素を割り当てることで、そのセルに ListObject を追加すると、Visual Studio Tools for Office によって、生成されたデータセットに ListObject が自動的に割り当てられます。ただし、ListObject は、自動的にデータにバインドされません。ドキュメント レベルのプロジェクトでは、デザイン時または実行時にデータセットに ListObject をバインドする手順を実行できます。SP1 以降、アプリケーション レベルのアドインで実行時にプログラムによってデータセットに ListObject をバインドできるようになりました。

データは ListObject から切り離されているため、ListObject を通じて直接ではなく、バインドされているデータセットを通じてデータを追加および削除する必要があります。バインドされたデータセット内のデータがなんらかの機構を通じて更新された場合、ListObject コントロールはその変更を自動的に反映します。詳細については、「コントロールへのデータのバインド」を参照してください。

ListObject をデータ ソースにバインドすると、すぐに ListObject コントロールにデータを読み込むことができます。データ バインドされた ListObject でデータを編集すると、データ ソースも自動的に変更されます。ListObject にデータを読み込んだ後、ユーザーがデータ ソースを変更せずに ListObject 内のデータを変更できるようにする場合は、Disconnect メソッドを使用して、データ ソースから ListObject を分離できます。詳細については、「方法 : ListObject コントロールにデータを読み込む」を参照してください。

2ttzcbhb.alert_note(ja-jp,VS.90).gifメモ :

オーバーラップしている ListObject コントロール上では、データ バインディングはサポートされません。

ListObject コントロールのパフォーマンスの向上

XML ファイルをデータ バインド ListObject コントロールに読み込む場合に、先にコントロールをバインドし、次に ReadXml を呼び出してデータセットに読み込むと、処理速度が低下する傾向があります。パフォーマンスを向上させるには、コントロールをバインドする前に ReadXml を呼び出します。

ListObject コントロールのデータ ソースからの接続の解除

ListObject コントロールをデータ ソースにバインドしてデータをそのコントロールに読み込んだ後、リスト オブジェクトのデータを変更してもデータ ソースに影響しないように、データ ソースへの接続を解除できます。詳細については、「方法 : ListObject コントロールにデータを読み込む」を参照してください。

書式設定

Microsoft.Office.Interop.Excel.ListObject に適用できる書式設定は、Microsoft.Office.Tools.Excel.ListObject コントロールにも適用できます。これには、罫線、フォント、数値の形式、およびスタイルが含まれます。エンド ユーザーは、ListObject データ バインド内の列を再配置できます。ListObject をデザイン時に文書に追加している場合は、その変更は文書と共に保持されます。次に文書を開いた場合、リスト オブジェクトは同じデータ ソースにバインドされますが、列の順序はユーザーの変更を反映します。

実行時の列の追加および削除

実行時に、ListObject データ バインド コントロール内の列を手動で追加または削除することはできません。エンド ユーザーが列を削除しても列は直ちに復元され、追加した列は削除されます。このため、データにバインドされている ListObject でこれらの操作を実行できない理由をユーザーに説明するコードを記述することが重要です。Visual Studio Tools for Office には、データ バインディングに関連する ListObject のイベントが用意されています。たとえば、OriginalDataRestored イベントを使用して、削除しようとしたデータは削除できず、復元されたことをユーザーに警告できます。

実行時の行の追加および削除

データ ソースへ新しい行を追加でき、データ ソースが読み取り専用でない場合、ListObject データ バインド コントロールに手動で行を追加したり削除したりできます。データを検証する BeforeAddDataBoundRow、エラーが訂正された後に再試行する ErrorAddDataBoundRow など、イベントに対するコードを記述できます。

詳細については、「方法 : ListObject コントロールに新規行が追加された場合にデータを検証する」および「方法 : ListObject コントロールに新規行が追加された場合にエラーを処理する」を参照してください。

Excel 2007 の ListObject コントロールの名前の変更

Excel 2007 では [デザイン] タブを使用して実行時に Excel テーブルの名前を変更できます。ただし、この機能は ListObject コントロールではサポートされていません。ListObject に対応する Excel テーブルの名前を変更しようとすると、ブックを保存するときに Excel テーブルの名前は自動的に元の名前に戻ります。

2ttzcbhb.alert_note(ja-jp,VS.90).gifメモ :

Excel リストは、Excel 2007 では Excel テーブルと呼ばれます。

イベント

次のイベントは ListObject コントロールで使用できます。

参照

処理手順

方法 : ワークシートに ListObject コントロールを追加する

方法 : ListObject コントロールのサイズを変更する

方法 : ListObject コントロールに新規行が追加された場合にデータを検証する

方法 : ListObject コントロールに新規行が追加された場合にエラーを処理する

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

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

Excel アドインのダイナミック コントロールのサンプル

方法 : データベースのデータをワークシートに読み込む

概念

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

コントロールへのデータのバインド

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

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

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

ホスト項目およびホスト コントロールのプログラム上の制限事項

その他の技術情報

Excel のホスト コントロール

Word ホスト コントロール

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

履歴の変更

日付

履歴

理由

2008 年 7 月

アプリケーション レベルのアドインでのリスト オブジェクト コントロールの使用に関する情報を追加

SP1 機能変更