ワークシートに ListObject コントロールを追加する
ドキュメント レベルのプロジェクトでは、デザイン時および実行時に、 ListObject コントロールを Microsoft Office Excel ワークシートに追加できます。
適用対象: このトピックの情報は、Excel のドキュメント レベルのプロジェクトおよび VSTO アドインのプロジェクトに適用されます。 詳細については、「Office アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。
VSTO アドイン プロジェクトでも、実行時に ListObject コントロールを追加できます。
このトピックでは、次のタスクについて説明します。
VSTO アドイン プロジェクトで、実行時に ListObject コントロールを追加する
ListObject コントロールの詳細については、「ListObject コントロール」を参照してください。
デザイン時に ListObject コントロールを追加する
デザイン時にドキュメント レベルのプロジェクトのワークシートに ListObject コントロールを追加する方法として、Excel から行う方法、Visual Studio の ツールボックスから行う方法、および [データ ソース] ウィンドウから行う方法があります。
Note
次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。 これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。 詳細については、「Visual Studio IDE のカスタマイズ」を参照してください。
Excel のリボンを使用するには
[挿入] タブの [テーブル] グループで、 [テーブル]をクリックします。
リストに含める 1 つ以上のセルを選択し、 [OK]をクリックします。
ツールボックスを使用するには
ツールボックス の [Excel コントロール]タブからワークシートまで ListObject をドラッグします。
[ListObject コントロールの追加] ダイアログ ボックスが表示されます。
リストに含める 1 つ以上のセルを選択し、 [OK]をクリックします。
名前を既定のままにしない場合は、 [プロパティ] ウィンドウで変更します。
[データ ソース] ウィンドウを使用するには
[データ ソース] ウィンドウを開いて、プロジェクトのデータ ソースを作成します。 詳細については、「新しい接続を追加する」を参照してください。
[データ ソース] ウィンドウからワークシートまでテーブルをドラッグします。
データがバインドされた ListObject コントロールがワークシートに追加されます。 詳細については、「データ連結と Windows フォーム」を参照してください。
ドキュメントレベルのプロジェクトで、実行時に ListObject コントロールを追加する
実行時に ListObject コントロールを動的に追加できます。 この方法を使用すると、イベントに応答してホスト コントロールを作成できます。 動的に作成されたリスト オブジェクトは、ワークシートを閉じる際に、ホスト コントロールとしてワークシートに残りません。 詳細については、「実行時に Office 文書にコントロールを追加する」を参照してください。
プログラムを使用してワークシートに ListObject コントロールを追加するには
Startup の
Sheet1
イベント ハンドラーに以下のコードを挿入して、 ListObject コントロールをセル A1 ~ A4に追加します。
VSTO アドイン プロジェクトで、実行時に ListObject コントロールを追加する
プログラムを使用して ListObject コントロールを VSTO アドイン プロジェクトの任意の開いているワークシートに追加できます。 動的に作成されたリスト オブジェクトは、ワークシートを保存して閉じる際に、ホスト コントロールとしてワークシートに残りません。 詳細については、「実行時に VSTO アドインの Word 文書と Excel ブックを拡張する」を参照してください。
プログラムを使用してワークシートに ListObject コントロールを追加するには
次のコードでは、開いているワークシートに基づいたワークシート ホスト項目を生成し、 ListObject コントロールをセル A1 ~ A4に追加します。
private void AddListObject() { Worksheet worksheet = Globals.Factory.GetVstoObject( Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets[1]); Microsoft.Office.Tools.Excel.ListObject list1; Excel.Range cell = worksheet.Range["$A$1:$D$4"]; list1 = worksheet.Controls.AddListObject(cell, "list1"); }