次の方法で共有


チュートリアル: Excel の操作ウィンドウ上のコントロールにデータをバインドする

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

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

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

  • ワークシートにコントロールを追加する。

  • 操作ウィンドウ コントロールを作成する。

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

  • アプリケーションが開いたときに操作ウィンドウを表示する。

Note

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

前提条件

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

  • Microsoft Office Developer Tools が含まれている Visual Studio のエディション。 詳細については、「Office ソリューションを開発できるようにコンピューターを構成する」を参照してください。

  • Excel 2013 または Excel 2010。

  • Northwind SQL Server サンプル データベースがあるサーバーへのアクセス。

  • SQL Server データベースに対する読み取りと書き込みのアクセス許可。

プロジェクトを作成する

まず、Excel ブック プロジェクトを作成します。

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

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

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

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

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

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

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

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

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

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

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

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

  8. Suppliers テーブルの隣にあるチェック ボックスをオンにします。

  9. Products テーブルを展開し、ProductNameSupplierIDQuantityPerUnit、および UnitPrice を選択します。

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

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

ワークシートにコントロールを追加する

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

NamedRange コントロールと ListObject コントロールを追加するには

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

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

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

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

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

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

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

    ListObject という名前の ProductNameListObject コントロールがセル 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 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 クラスに、ユーザー コントロールの新規インスタンスを作成します。

    ActionsControl actions = new ActionsControl();
    
  3. ThisWorkbookStartup イベント ハンドラーで、操作ウィンドウにコントロールを追加します。

    private void ThisWorkbook_Startup(object sender, System.EventArgs e)
    {
        this.ActionsPane.Controls.Add(actions);
    }
    

アプリケーションをテストする

それでは、ドキュメントをテストして、ドキュメントを開いたときに操作ウィンドウが開くことと、コントロールにマスター/詳細関係があることを確認していきます。

文書をテストするには

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

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

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

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

次のステップ

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