チュートリアル: 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 ブック プロジェクトを作成します。
新しいプロジェクトを作成するには
My Excel Actions Pane という名前で Excel ブック プロジェクトを作成します。 ウィザードで、[新規ドキュメントの作成] をクリックします。 詳細については、「方法: Visual Studio で Office プロジェクトを作成する」を参照してください。
Visual Studio によって、新しい Excel ブックがデザイナーで開かれ、My Excel Actions Pane プロジェクトがソリューション エクスプローラーに追加されます。
プロジェクトに新しいデータ ソースを追加する
プロジェクトに新しいデータ ソースを追加するには
[データ ソース] ウィンドウが表示されていない場合は、メニュー バーの [表示]>[その他のウィンドウ]>[データ ソース] の順にクリックして表示します。
[新しいデータ ソースの追加] をクリックして データ ソース構成ウィザードを開始します。
[データベース] を選択し、[次へ] をクリックします。
SQL Server の Northwind サンプル データベースへのデータ接続を選択するか、または [新しい接続] ボタンを使用して新しい接続を追加します。
次へ をクリックします。
接続を保存するオプションがオンになっている場合は、それをオフにして、[次へ] をクリックします。
[データベース オブジェクト] ウィンドウで、[Tables] ノードを展開します。
Suppliers テーブルの隣にあるチェック ボックスをオンにします。
Products テーブルを展開し、ProductName、SupplierID、QuantityPerUnit、および UnitPrice を選択します。
[完了] をクリックします。
ウィザードにより、Suppliers テーブルと Products テーブルが [データ ソース] ウィンドウに追加されます。 また、ソリューション エクスプローラーに表示される、型指定されたデータセットがプロジェクトに追加されます。
ワークシートにコントロールを追加する
次に、NamedRange コントロールと ListObject コントロールを最初のワークシートに追加します。
NamedRange コントロールと ListObject コントロールを追加するには
My Excel Actions Pane.xlsx ブックが Visual Studio デザイナーで開かれ、
Sheet1
表示されていることを確認します。[データ ソース] ウィンドウで、Suppliers テーブルを展開します。
[Company Name] ノードのドロップダウン矢印をクリックし、[NamedRange] をクリックします。
Company Name を、[データ ソース] ウィンドウから
Sheet1
のセル A2 にドラッグします。CompanyNameNamedRange
という名前の NamedRange コントロールが作成され、<CompanyName> というテキストがセル A2 に表示されます。 同時に、suppliersBindingSource
という名前の BindingSource、テーブル アダプター、および DataSet がプロジェクトに追加されます。 コントロールは BindingSource にバインドされ、さらにこれが DataSet インスタンスにバインドされます。[データ ソース] ウィンドウで、Suppliers テーブルの下にある列の末尾までスクロールします。 一覧の一番下には、Products テーブルがあります。これは、Suppliers テーブルの子であるためです。 この Products テーブル (Suppliers テーブルと同じレベルにあるものではなく) を選択し、表示されるドロップダウン矢印をクリックします。
ドロップダウン リストで [ListObject] をクリックし、Products テーブルを
Sheet1
のセル A6 にドラッグします。ListObject という名前の
ProductNameListObject
コントロールがセル A6 に作成されます。 同時に、productsBindingSource
という名前の BindingSource と、テーブル アダプターがプロジェクトに追加されます。 コントロールは BindingSource にバインドされ、さらにこれが DataSet インスタンスにバインドされます。C# の場合のみ、コンポーネント トレイの [suppliersBindingSource] を選択し、プロパティ ウィンドウで Modifiers プロパティを Internal に変更します。
操作ウィンドウにコントロールを追加する
次に、コンボ ボックスを含んだ操作ウィンドウ コントロールが必要です。
操作ウィンドウ コントロールを追加するには
ソリューション エクスプローラーで、[My Excel Actions Pane] プロジェクトを選択します。
[プロジェクト] メニューの [新しい項目の追加] をクリックします。
[新しい項目の追加] ダイアログ ボックスで、[操作ウィンドウ コントロール] を選択し、名前を ActionsControl と指定して、[追加] をクリックします。
データ バインドされた Windows フォーム コントロールを操作ウィンドウ コントロールに追加するには
ツールボックスの [コモン コントロール]タブから、ComboBox コントロールを操作ウィンドウ コントロールにドラッグします。
Size プロパティを 171, 21 に変更します。
ユーザー コントロールのサイズを、コンボ ボックスに合わせて変更します。
操作ウィンドウ上のコントロールをデータにバインドする
このセクションでは、ComboBox のデータ ソースを、ワークシート上の NamedRange コントロールと同じデータ ソースに設定します。
コントロールのデータ バインディング プロパティを設定するには
操作ウィンドウ コントロールを右クリックし、[コードの表示] をクリックします。
操作ウィンドウ コントロールの Load イベントに次のコードを追加します。
C# では、
ActionsControl
のイベント ハンドラーを作成する必要があります。 このコードを、ActionsControl
コンストラクターに配置できます。 イベント ハンドラーの作成方法について詳しくは、「方法: Office プロジェクトでイベント ハンドラーを作成する」をご覧ください。public ActionsControl() { InitializeComponent(); this.Load += new EventHandler(ActionsControl_Load); }
操作ウィンドウを表示する
操作ウィンドウは、実行時にコントロールを追加するまでは表示されません。
操作ウィンドウを表示するには
ソリューション エクスプローラーで、ThisWorkbook.vb または ThisWorkbook.csを右クリックし、[コードの表示]をクリックします。
ThisWorkbook
クラスに、ユーザー コントロールの新規インスタンスを作成します。ThisWorkbook
の Startup イベント ハンドラーで、操作ウィンドウにコントロールを追加します。
アプリケーションをテストする
それでは、ドキュメントをテストして、ドキュメントを開いたときに操作ウィンドウが開くことと、コントロールにマスター/詳細関係があることを確認していきます。
文書をテストするには
F5 キーを押してプロジェクトを実行します。
操作ウィンドウが表示されていることを確認します。
リスト ボックスで会社を選択します。 NamedRange コントロールに会社名が表示されていて、ListObject コントロールに製品の詳細が表示されていることを確認します。
さまざまな会社を選択して、会社名と製品詳細が適切に変更されることを確認します。
次のステップ
ここでは、次の作業を行います。
Word のコントロールにデータをバインドする。 詳しくは、「チュートリアル: Word の操作ウィンドウ上のコントロールにデータをバインドする」をご覧ください。
プロジェクトを配置する。 詳しくは、「ClickOnce を使用して Office ソリューションを配置する」をご覧ください。