このチュートリアルでは、Microsoft Office Excel のドキュメント レベルのカスタマイズから Windows フォームを開き、ユーザーから情報を収集し、その情報をワークシート のセルに書き込む方法について説明します。
適用対象: このトピックの情報は、ドキュメント レベルのプロジェクトと VSTO アドイン プロジェクトに適用されます。 「Office アプリケーションとプロジェクトの種類で使用できる機能」を参照してください。
このチュートリアルでは、特に Excel 用のドキュメント レベルのプロジェクトを使用しますが、このチュートリアルで示す概念は他の Office プロジェクトにも適用できます。
[前提条件]
このチュートリアルを実行するには、次のコンポーネントが必要です。
Microsoft Office 開発者ツールを含む Visual Studio のエディション。 詳細については、「 Office ソリューションを開発するためのコンピューターの構成」を参照してください。
Excel 2013 または Excel 2010 .
注
次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。 これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。 詳細については、「Visual Studio IDE のカスタマイズ」を参照してください。
新しいプロジェクトを作成する
最初の手順では、Excel ブック プロジェクトを作成します。
新しいプロジェクトを作成するには
WinFormInput という名前の Excel Workbook プロジェクトを作成し、ウィザードで [新しいドキュメントの作成] を選択します。 詳細については、「 方法: Visual Studio で Office プロジェクトを作成する」を参照してください。
Visual Studio がデザイナーで新しい Excel ブックを開き、 WinFormInput プロジェクトを ソリューション エクスプローラーに追加します。
ワークシートに NamedRange コントロールを追加する
シート 1 に名前付き範囲を追加するには
のセル
Sheet1を選択します。[ 名前 ] ボックスに「 formInput」と入力します。
[名前] ボックスは、ワークシートの列 A のすぐ上にある数式バーの左側にあります。
Enter キーを押します。
NamedRange コントロールがセル A1 に追加されます。 ワークシートには表示されませんが、formInput は [名前] ボックス (左側のワークシートのすぐ上) に表示され、セル A1 が選択されている場合は [プロパティ] ウィンドウに表示されます。
Windows フォームをプロジェクトに追加する
ユーザーに情報の入力を求める Windows フォームを作成します。
Windows フォームを追加するには
ソリューション エクスプローラーでプロジェクト WinFormInput を選択します。
[ プロジェクト ] メニューの [ Windows フォームの追加] をクリックします。
フォームに GetInputString.vb または GetInputString.cs名前を付け、[ 追加] をクリックします。
デザイナーで新しいフォームが開く。
ボタンを選択し、[プロパティ] ウィンドウで [テキスト] プロパティを見つけて、テキストを [OK] に変更します。
次に、
ThisWorkbook.vbまたはThisWorkbook.csにコードを追加して、ユーザーの情報を収集します。
Windows フォームの表示と情報の収集
GetInputString Windows フォームのインスタンスを作成して表示し、ワークシートのセルにユーザーの情報を書き込みます。
フォームを表示して情報を収集するには
ソリューション エクスプローラーでThisWorkbook.vbまたはThisWorkbook.csを右クリックし、[コードの表示] をクリックします。
Openの
ThisWorkbookイベント ハンドラーで、次のコードを追加してフォームGetInputStringの変数を宣言し、フォームを表示します。注
C# では、次の Startup イベントに示すように、イベント ハンドラーを追加する必要があります。 イベント ハンドラーの作成の詳細については、「 方法: Office プロジェクトでイベント ハンドラーを作成する」を参照してください。
名前付き範囲にテキストを書き込む
WriteStringToCellというメソッドを作成します。 このメソッドはフォームから呼び出され、ユーザーの入力はセル NamedRange のformInputコントロール () に渡されます。public void WriteStringToCell(string formData) { Globals.Sheet1.formInput.Value2 = formData; }次に、ボタンのクリック イベントを処理するコードをフォームに追加します。
ワークシートに情報を送信する
ワークシートに情報を送信するには
ソリューション エクスプローラーで GetInputString を右クリックし、[デザイナーの表示] をクリックします。
ボタンをダブルクリックして、ボタンの Click イベント ハンドラーが追加されたコード ファイルを開きます。
テキスト ボックスから入力を受け取るコードをイベント ハンドラーに追加し、関数
WriteStringToCellに送信して、フォームを閉じます。
Test
これで、プロジェクトを実行できます。 Windows フォームが表示され、ワークシートに入力が表示されます。
ブックをテストするには
F5 キーを押してプロジェクトを実行します。
Windows フォームが表示されることを確認します。
テキスト ボックスに 「Hello World 」と入力し、[ OK] をクリックします。
ワークシートのセル A1 に Hello World が表示されていることを確認します。
次のステップ
このチュートリアルでは、Windows フォームの表示とワークシートへのデータの受け渡しの基本について説明します。 実行するその他のタスクは次のとおりです。
Excel ブックまたは Word 文書で Windows フォーム コントロールを使用します。 詳細については、「 Office ドキュメントの Windows フォーム コントロールの概要」を参照してください。
ドキュメント レベルのカスタマイズまたは VSTO アドインから Microsoft Office アプリケーションのユーザー インターフェイスを変更します。 詳細については、「 Office UI のカスタマイズ」を参照してください。