次の方法で共有


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

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

対象: このトピックの情報は、Excel 2007 と Excel 2010 のドキュメント レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。

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

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

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

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

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

注意

次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。 これらの要素は、使用する Visual Studio のエディションとその設定によって決まります。 詳細については、「設定の操作」を参照してください。

必須コンポーネント

このチュートリアルを実行するには、次のコンポーネントが必要です。

-

Microsoft Office 開発者ツールを含むエディションの Visual Studio 2010。 詳細については、「[Office ソリューションを開発できるようにコンピューターを構成する](bb398242\(v=vs.100\).md)」を参照してください。
  • Excel 2007 または Excel 2010

  • Northwind SQL Server サンプル データベースがインストールされたサーバーへのアクセス

  • SQL Server データベースの読み込み/書き込みアクセス許可

プロジェクトの作成

最初に、Excel ワークブック プロジェクトを作成します。

新しいプロジェクトを作成するには

  • My Excel Actions Pane という名前の Excel ワークブック プロジェクトを作成します。 ウィザードで、[新規ドキュメントの作成] をクリックします。 詳細については、「方法: Visual Studio で Office プロジェクトを作成する」を参照してください。

    新しい Excel ブックがデザイナーで開き、My Excel Actions Pane プロジェクトがソリューション エクスプローラーに追加されます。

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

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

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

    注意

    [データ ソースの表示] が表示されていない場合は、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. [Size] プロパティを 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 コンストラクターに追加できます。 イベンド ハンドラーの作成方法の詳細については、「方法: 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. さまざまな会社を選択して、会社名と製品の詳細が適切に変化することを確認します。

次の手順

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

参照

処理手順

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

概念

操作ウィンドウの概要

Office ソリューションでのコントロールへのデータのバインド