Share via


チュートリアル : Excel のアクション ペインのコントロールへのデータ連結

更新 : 2007 年 11 月

対象

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

プロジェクトの種類

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

Microsoft Office のバージョン

  • Excel 2007

  • Excel 2003

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

このチュートリアルでは、Microsoft Office Excel の操作ウィンドウ内のコントロールに対するデータのバインドについて説明します。このコントロールは、SQL Server データベースのテーブル間のマスター/詳細リレーションシップを示します。

このチュートリアルでは、次のタスクについて説明します。

  • ワークシートへのコントロールの追加

  • 操作ウィンドウ コントロールの作成

  • 操作ウィンドウ コントロールへのデータ バインド Windows フォーム コントロールの追加

  • アプリケーションが開かれたときの操作ウィンドウの表示

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

次の手順で参照している 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 プロジェクトがソリューション エクスプローラに追加されます。

プロジェクトへの新しいデータ ソースの追加

プロジェクトに新しいデータ ソースを追加するには

  1. [データ ソース] ウィンドウが表示されていない場合は、[データ] メニューの [データ ソースの表示] をクリックします。

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

    [データ ソースの表示] が表示されていない場合は、Excel ワークシートの内部をクリックし、再び確認します。

  2. [新しいデータ ソースの追加] をクリックしてデータ ソース構成ウィザードを起動します。

  3. [データベース] をクリックし、[次へ] をクリックします。

  4. SQL Server Northwind サンプル データベースへのデータ接続を選択するか、または [新しい接続] をクリックして新しい接続を追加します。

  5. [次へ] をクリックします。

  6. 接続を保存するオプションがオンになっている場合はオフにし、[次へ] をクリックします。

  7. [データベース オブジェクト] ウィンドウの [テーブル] ノードを展開します。

  8. [Suppliers] テーブルの横のチェック ボックスをオンにします。

  9. [Products] テーブルを展開し、[ProductName][SupplierID][QuantityPerUnit]、および [UnitPrice] を選択します。

  10. [完了] をクリックします。

[データ ソース] ウィンドウに [Suppliers] テーブルと [Products] テーブルが追加されます。さらに、ソリューション エクスプローラに表示できる、型指定されたデータセットもプロジェクトに追加されます。

ワークシートへのコントロールの追加

次に、NamedRange コントロールと ListObject コントロールを、最初のワークシートに追加します。

NamedRange コントロールおよび ListObject コントロールを追加するには

  1. Visual Studio デザイナで My Excel Actions Pane.xls ブックが開いていて、Sheet1 が表示されていることを確認します。

  2. [データ ソース] ウィンドウの [Suppliers] テーブルを展開します。

  3. [会社名] ノードのドロップダウン矢印をクリックし、[NamedRange] をクリックします。

  4. [データ ソース] ウィンドウから Sheet1 のセル A2 へ、[会社名] をドラッグします。

    CompanyNameNamedRange という名前の NamedRange コントロールが作成され、セル A2 に <CompanyName> というテキストが表示されます。同時に、suppliersBindingSource という名前の BindingSource、テーブル アダプタ、および DataSet がプロジェクトに追加されます。コントロールは BindingSource にバインドされ、さらにこれが DataSet インスタンスにバインドされます。

  5. [データ ソース] ウィンドウで、[Suppliers] テーブルの下にある列をスクロール ダウンします。リストの一番下には、[Suppliers] テーブルの子である [Products] テーブルがあります。[Suppliers] テーブルと同じレベルにあるものではなく、この [Products] テーブルを選択し、表示されるドロップダウン矢印をクリックします。

  6. ドロップダウン リストの [ListObject] をクリックし、[Products] テーブルを Sheet1 のセル A6 にドラッグします。

    ProductNameListObject という名前の ListObject コントロールがセル A6 に作成されます。同時に、productsBindingSource という名前の BindingSource とテーブル アダプタがプロジェクトに追加されます。コントロールは BindingSource にバインドされ、さらにこれが DataSet インスタンスにバインドされます。

  7. C# の場合のみ、コンポーネント トレイの [SuppliersBindingSource] を選択し、[プロパティ] ウィンドウで [Modifiers] プロパティを [Internal] に変更します。

操作ウィンドウへのコントロールの追加

次に、コンボ ボックスを含む操作ウィンドウ コントロールが必要です。

操作ウィンドウ コントロールを追加するには

  1. ソリューション エクスプローラMy Excel Actions Pane プロジェクトを選択します。

  2. [プロジェクト] メニューの [新しい項目の追加] をクリックします。

  3. [新しい項目の追加] ダイアログ ボックスで、[操作ウィンドウ コントロール] を選択し、ActionsControl という名前を指定して、[追加] をクリックします。

操作ウィンドウ コントロールにデータ バインド Windows フォーム コントロールを追加するには

  1. ツールボックス[コモン コントロール] タブから操作ウィンドウ コントロールへ、ComboBox コントロールをドラッグします。

  2. [サイズ] プロパティを 171, 21 に変更します。

  3. ユーザー コントロールのサイズをコンボ ボックスと同じ大きさに変更します。

操作ウィンドウ コントロールのデータへのバインド

ここでは、ComboBox のデータ ソースを、ワークシート上の NamedRange コントロールと同じデータ ソースに設定します。

コントロールのデータ バインディング プロパティを設定するには

  1. 操作ウィンドウ コントロールを右クリックし、[コードの表示] をクリックします。

  2. 操作ウィンドウ コントロールの 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";
    }
    
  3. C# では、ActionsControl のイベント ハンドラを作成する必要があります。このコードを ActionsControl コンストラクタに追加できます。イベンド ハンドラの作成方法の詳細については、「方法 : Visual Studio Tools for Office でイベント ハンドラを作成する」を参照してください。

    public ActionsControl()
    {
        InitializeComponent();
        this.Load += new EventHandler(ActionsControl_Load);
    }
    

操作ウィンドウの表示

実行時に操作ウィンドウ コントロールを追加するまで、操作ウィンドウは表示されません。

操作ウィンドウを表示するには

  1. ソリューション エクスプローラで ThisWorkbook.vb または ThisWorkbook.cs を右クリックし、[コードの表示] をクリックします。

  2. ThisWorkbook クラスで、ユーザー コントロールの新しいインスタンスを作成します。

    Dim actions As New ActionsControl
    
    ActionsControl actions = new ActionsControl();
    
  3. 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);
    }
    

アプリケーションのテスト

文書をテストして、文書を開いたときに操作ウィンドウが開き、コントロールの間にマスター/詳細リレーションシップがあることを確認します。

文書をテストするには

  1. F5 キーを押してプロジェクトを実行します。

  2. 操作ウィンドウが表示されることを確認します。

  3. リスト ボックスから会社を選択します。会社名が NamedRange コントロールに表示され、製品の詳細が ListObject コントロールに表示されることを確認します。

  4. さまざまな会社を選択して、会社名と製品の詳細が適切に変化することを確認します。

次の手順

ここでは、次の作業を行います。

参照

処理手順

方法 : アクション ペイン上のコントロールのレイアウトを管理する

概念

操作ウィンドウの概要

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