チュートリアル : Excel のアクション ペインのコントロールへのデータ連結
更新 : 2007 年 11 月
対象 |
---|
このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。 プロジェクトの種類
Microsoft Office のバージョン
詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。 |
このチュートリアルでは、Microsoft Office Excel の操作ウィンドウ内のコントロールに対するデータのバインドについて説明します。このコントロールは、SQL Server データベースのテーブル間のマスター/詳細リレーションシップを示します。
このチュートリアルでは、次のタスクについて説明します。
ワークシートへのコントロールの追加
操作ウィンドウ コントロールの作成
操作ウィンドウ コントロールへのデータ バインド Windows フォーム コントロールの追加
アプリケーションが開かれたときの操作ウィンドウの表示
メモ : |
---|
次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピュータでは名前や場所が異なる場合があります。これらの要素は、使用する Visual Studio のエディションとその設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。 |
前提条件
このチュートリアルを完了するには、次のコンポーネントが必要です。
Visual Studio Tools for Office (Visual Studio 2008 Professional および Visual Studio Team System のオプションの要素)
Microsoft Office Excel 2003 または Microsoft Office Excel 2007。このチュートリアルのコード例では、Excel 2003 のメニューを使用します。
Northwind SQL Server サンプル データベースがインストールされたサーバーへのアクセス。
SQL Server データベースの読み込み/書き込みアクセス許可
ここに挙げた Visual Studio のバージョンでは、Visual Studio Tools for Office が既定でインストールされます。インストールされているかどうかを確認する方法については、「Visual Studio Tools for Office のインストール」を参照してください。
プロジェクトの作成
最初に、Excel ワークブック プロジェクトを作成します。
新しいプロジェクトを作成するには
My Excel Actions Pane という名前の Excel ワークブック プロジェクトを作成します。ウィザードで、[新規ドキュメントの作成] をクリックします。詳細については、「方法 : Visual Studio Tools for Office プロジェクトを作成する」を参照してください。
新しい Excel ブックがデザイナで開き、My Excel Actions Pane プロジェクトがソリューション エクスプローラに追加されます。
プロジェクトへの新しいデータ ソースの追加
プロジェクトに新しいデータ ソースを追加するには
[データ ソース] ウィンドウが表示されていない場合は、[データ] メニューの [データ ソースの表示] をクリックします。
メモ : [データ ソースの表示] が表示されていない場合は、Excel ワークシートの内部をクリックし、再び確認します。
[新しいデータ ソースの追加] をクリックしてデータ ソース構成ウィザードを起動します。
[データベース] をクリックし、[次へ] をクリックします。
SQL Server Northwind サンプル データベースへのデータ接続を選択するか、または [新しい接続] をクリックして新しい接続を追加します。
[次へ] をクリックします。
接続を保存するオプションがオンになっている場合はオフにし、[次へ] をクリックします。
[データベース オブジェクト] ウィンドウの [テーブル] ノードを展開します。
[Suppliers] テーブルの横のチェック ボックスをオンにします。
[Products] テーブルを展開し、[ProductName]、[SupplierID]、[QuantityPerUnit]、および [UnitPrice] を選択します。
[完了] をクリックします。
[データ ソース] ウィンドウに [Suppliers] テーブルと [Products] テーブルが追加されます。さらに、ソリューション エクスプローラに表示できる、型指定されたデータセットもプロジェクトに追加されます。
ワークシートへのコントロールの追加
次に、NamedRange コントロールと ListObject コントロールを、最初のワークシートに追加します。
NamedRange コントロールおよび ListObject コントロールを追加するには
Visual Studio デザイナで My Excel Actions Pane.xls ブックが開いていて、Sheet1 が表示されていることを確認します。
[データ ソース] ウィンドウの [Suppliers] テーブルを展開します。
[会社名] ノードのドロップダウン矢印をクリックし、[NamedRange] をクリックします。
[データ ソース] ウィンドウから Sheet1 のセル A2 へ、[会社名] をドラッグします。
CompanyNameNamedRange という名前の NamedRange コントロールが作成され、セル A2 に <CompanyName> というテキストが表示されます。同時に、suppliersBindingSource という名前の BindingSource、テーブル アダプタ、および DataSet がプロジェクトに追加されます。コントロールは BindingSource にバインドされ、さらにこれが DataSet インスタンスにバインドされます。
[データ ソース] ウィンドウで、[Suppliers] テーブルの下にある列をスクロール ダウンします。リストの一番下には、[Suppliers] テーブルの子である [Products] テーブルがあります。[Suppliers] テーブルと同じレベルにあるものではなく、この [Products] テーブルを選択し、表示されるドロップダウン矢印をクリックします。
ドロップダウン リストの [ListObject] をクリックし、[Products] テーブルを Sheet1 のセル A6 にドラッグします。
ProductNameListObject という名前の ListObject コントロールがセル A6 に作成されます。同時に、productsBindingSource という名前の BindingSource とテーブル アダプタがプロジェクトに追加されます。コントロールは BindingSource にバインドされ、さらにこれが DataSet インスタンスにバインドされます。
C# の場合のみ、コンポーネント トレイの [SuppliersBindingSource] を選択し、[プロパティ] ウィンドウで [Modifiers] プロパティを [Internal] に変更します。
操作ウィンドウへのコントロールの追加
次に、コンボ ボックスを含む操作ウィンドウ コントロールが必要です。
操作ウィンドウ コントロールを追加するには
ソリューション エクスプローラで My Excel Actions Pane プロジェクトを選択します。
[プロジェクト] メニューの [新しい項目の追加] をクリックします。
[新しい項目の追加] ダイアログ ボックスで、[操作ウィンドウ コントロール] を選択し、ActionsControl という名前を指定して、[追加] をクリックします。
操作ウィンドウ コントロールにデータ バインド Windows フォーム コントロールを追加するには
ツールボックスの [コモン コントロール] タブから操作ウィンドウ コントロールへ、ComboBox コントロールをドラッグします。
[サイズ] プロパティを 171, 21 に変更します。
ユーザー コントロールのサイズをコンボ ボックスと同じ大きさに変更します。
操作ウィンドウ コントロールのデータへのバインド
ここでは、ComboBox のデータ ソースを、ワークシート上の NamedRange コントロールと同じデータ ソースに設定します。
コントロールのデータ バインディング プロパティを設定するには
操作ウィンドウ コントロールを右クリックし、[コードの表示] をクリックします。
操作ウィンドウ コントロールの Load イベントに次のコードを追加します。
Private Sub ActionsControl_Load(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Load Me.ComboBox1.DataSource = Globals.Sheet1.SuppliersBindingSource Me.ComboBox1.DisplayMember = "CompanyName" End Sub
private void ActionsControl_Load(object sender, EventArgs e) { this.comboBox1.DataSource = Globals.Sheet1.suppliersBindingSource; this.comboBox1.DisplayMember = "CompanyName"; }
C# では、ActionsControl のイベント ハンドラを作成する必要があります。このコードを ActionsControl コンストラクタに追加できます。イベンド ハンドラの作成方法の詳細については、「方法 : Visual Studio Tools for Office でイベント ハンドラを作成する」を参照してください。
public ActionsControl() { InitializeComponent(); this.Load += new EventHandler(ActionsControl_Load); }
操作ウィンドウの表示
実行時に操作ウィンドウ コントロールを追加するまで、操作ウィンドウは表示されません。
操作ウィンドウを表示するには
ソリューション エクスプローラで ThisWorkbook.vb または ThisWorkbook.cs を右クリックし、[コードの表示] をクリックします。
ThisWorkbook クラスで、ユーザー コントロールの新しいインスタンスを作成します。
Dim actions As New ActionsControl
ActionsControl actions = new ActionsControl();
ThisWorkbook の Startup イベント ハンドラで、コントロールを操作ウィンドウに追加します。
Private Sub ThisWorkbook_Startup(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Startup Me.ActionsPane.Controls.Add(actions) End Sub
private void ThisWorkbook_Startup(object sender, System.EventArgs e) { this.ActionsPane.Controls.Add(actions); }
アプリケーションのテスト
文書をテストして、文書を開いたときに操作ウィンドウが開き、コントロールの間にマスター/詳細リレーションシップがあることを確認します。
文書をテストするには
F5 キーを押してプロジェクトを実行します。
操作ウィンドウが表示されることを確認します。
リスト ボックスから会社を選択します。会社名が NamedRange コントロールに表示され、製品の詳細が ListObject コントロールに表示されることを確認します。
さまざまな会社を選択して、会社名と製品の詳細が適切に変化することを確認します。
次の手順
ここでは、次の作業を行います。
プロジェクトの配置。詳細については、「方法 : Office ソリューションを配置する (2003 システム)」を参照してください。
Word のコントロールへのデータのバインド。詳細については、「チュートリアル : Word の操作ウィンドウ上のコントロールへのデータ バインディング」を参照してください。
操作ウィンドウのコントロールの表示と非表示。詳細については、「チュートリアル : ユーザー コンテキストに応じた操作ウィンドウの変更」を参照してください。
参照
処理手順
方法 : アクション ペイン上のコントロールのレイアウトを管理する