チュートリアル : 初めての Excel 用ドキュメント レベルのカスタマイズの作成
この入門編のチュートリアルでは、Microsoft Office Excel 用のドキュメント レベルのカスタマイズを作成する方法について説明します。 この種のソリューションに作成した機能は、特定のブックが開いている場合にのみ使用できます。 ドキュメント レベルのカスタマイズでは、ブックが開いたときに新しいリボン タブを表示するなどの、アプリケーション全体の変更を行うことはできません。
対象: このトピックの情報は、Excel 2007 と Excel 2010 のドキュメント レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。
このチュートリアルでは、次の作業について説明します。
Excel ブック プロジェクトを作成する。
Visual Studio デザイナーでホストされるワークシートにテキストを追加する。
Excel のオブジェクト モデルを使用して、カスタマイズされたワークシートが開かれるときにテキストを追加するコードを記述する。
プロジェクトをビルドし、実行してテストする。
完成したプロジェクトをクリーンアップして、不必要なビルド ファイルおよびセキュリティ設定を開発用コンピューターから削除する。
注意
お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。 これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。 詳細については、「Visual Studio の設定」を参照してください。
必須コンポーネント
このチュートリアルを実行するには、次のコンポーネントが必要です。
-
Microsoft Office 開発者ツールを含むエディションの Visual Studio 2010。 詳細については、「[Office ソリューションを開発できるようにコンピューターを構成する](bb398242\(v=vs.100\).md)」を参照してください。
- Microsoft Office Excel 2007 または Excel 2010
プロジェクトの作成
Visual Studio で新しい Excel ブック プロジェクトを作成するには
Visual Studio を起動します。
[ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
テンプレート ペインで、[Visual C#] または [Visual Basic] を展開し、[Office] を展開します。
展開した [Office] ノードの下で、[2007] ノード (Excel 2007 がインストールされている場合) または [2010] ノード (Excel 2010 がインストールされている場合) を選択します。
プロジェクト テンプレートの一覧で、[Excel 2007 ブック] または [Excel 2010 ブック] を選択します。
[プロジェクト名] ボックスに「FirstWorkbookCustomization」と入力します。
[OK] をクリックします。
Visual Studio Tools for Office プロジェクト ウィザードが開きます。
[新規ドキュメントの作成] を選択し、[OK] をクリックします。
Visual Studio によって FirstWorkbookCustomization プロジェクトが作成され、プロジェクトに次のファイルが追加されます。
FirstWorkbookCustomization.xlsx - プロジェクト内の Excel ブックを表します。 すべてのワークシートとグラフが含まれています。
Sheet1 (Visual Basic の場合は .vb ファイル、Visual C# の場合は .cs ファイル) - ブック内の最初のワークシートのデザイン サーフェイスとコードを含んでいるワークシート。 詳細については、「Worksheet ホスト項目」を参照してください。
Sheet2 (Visual Basic の場合は .vb ファイル、Visual C# の場合は .cs ファイル) - ブック内の 2 番目のワークシートのデザイン サーフェイスとコードを含んでいるワークシート。
Sheet3 (Visual Basic の場合は .vb ファイル、Visual C# の場合は .cs ファイル) - ブック内の 3 番目のワークシートのデザイン サーフェイスとコードを含んでいるワークシート。
ThisWorkbook (Visual Basic の場合は .vb ファイル、Visual C# の場合は .cs ファイル) - ブックレベルのカスタマイズに関するデザイン サーフェイスとコードが含まれています。 詳細については、「Workbook ホスト項目」を参照してください。
Sheet1 コード ファイルが自動的にデザイナーで開かれます。
デザイナーでワークシートを閉じ、再び開く
プロジェクトを開発しているときにデザイナーで開いていたブックまたはワークシートを意図的にまたは誤って閉じた場合は、そのドキュメントを再び開くことができます。
デザイナーでワークシートを閉じ、再び開くには
デザイナー ウィンドウの閉じるボタン (X) をクリックしてブックを閉じます。
ソリューション エクスプローラーで、Sheet1 コード ファイルを右クリックし、[デザイナーの表示] をクリックします。
または
ソリューション エクスプローラーで Sheet1 コード ファイルをダブルクリックします。
デザイナーを使用したワークシートへのテキストの追加
デザイナーで開いたワークシートを変更することで、カスタマイズのユーザー インターフェイス (UI: User Interface) をデザインできます。 たとえば、セルへのテキストの追加、数式の適用、Excel コントロールの追加などを行うことができます。 デザイナーを使用する方法の詳細については、「Visual Studio 環境における Office プロジェクト」を参照してください。
デザイナーを使用してワークシートにテキストを追加するには
デザイナーで開いたワークシートで、セル A1 を選択し、次のテキストを入力します。
This text was added by using the designer.
ヒント
このテキスト行をセル A2 に追加すると、この例の他のコードによって上書きされます。
プログラムによるワークシートへのテキストの追加
次に、Sheet1 コード ファイルにコードを追加します。 この新しいコードでは、Excel のオブジェクト モデルを使用して、ブックに 2 番目のテキスト行を追加します。 Sheet1 コード ファイルには、次のコードが既定で含まれています。
Sheet1 クラスの部分定義。このクラスは、ワークシートのプログラミング モデルを表し、Excel のオブジェクト モデルへのアクセスを提供します。 詳細については、「Worksheet ホスト項目」および「Word オブジェクト モデルの概要」を参照してください。 Sheet1 クラスの残りの部分は、変更することができない非表示のコード ファイルに定義されています。
Sheet1_Startup イベント ハンドラーおよび Sheet1_Shutdown イベント ハンドラー。 これらのイベント ハンドラーは、Excel がカスタマイズを読み込むときとアンロードするときに呼び出されます。 これらのイベント ハンドラーを使用して、読み込まれるときにはカスタマイズを初期化し、アンロードされるときにはカスタマイズが使用したリソースをクリーンアップします。 詳細については、「Office プロジェクトのイベント」を参照してください。
コードを使用してワークシートに 2 番目のテキスト行を追加するには
ソリューション エクスプローラーで、Sheet1 を右クリックし、[コードの表示] をクリックします。
Visual Studio でコード ファイルが開かれます。
Sheet1_Startup イベント ハンドラーを次のコードで置き換えます。 Sheet1 が開かれると、この新しいコードにより、2 番目のテキスト行がワークシートに追加されます。
Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup Dim nr As Microsoft.Office.Tools.Excel.NamedRange = _ Me.Controls.AddNamedRange(Me.Range("A2"), "NamedRange1") nr.Value2 = "This text was added by using code" End Sub
private void Sheet1_Startup(object sender, System.EventArgs e) { Microsoft.Office.Tools.Excel.NamedRange nr = this.Controls.AddNamedRange(this.Range["A2", missing], "NamedRange1"); nr.Value2 = "This text was added by using code"; }
プロジェクトのテスト
ブックをテストするには
F5 キーを押して、プロジェクトをビルドおよび実行します。
プロジェクトをビルドすると、コードはアセンブリにコンパイルされ、ブックに関連付けられます。 Visual Studio は、ブックおよびアセンブリのコピーをプロジェクトのビルド出力フォルダーに格納し、カスタマイズを実行できるように開発用コンピューター上のセキュリティ設定を行います。 詳細については、「Office ソリューション ビルド処理の概要」を参照してください。
次のテキストがブックに追加されることを確認します。
This text was added by using the designer.
This text was added by using code.
ブックを閉じます。
プロジェクトのクリーンアップ
プロジェクトの開発が完了したら、ビルド プロセスによって作成されたビルド出力フォルダー内のファイルおよびセキュリティ設定を削除する必要があります。
開発用コンピューターから完成したプロジェクトをクリーンアップするには
- Visual Studio で、[ビルド] メニューの [ソリューションのクリーン] をクリックします。
次の手順
Excel 用の基本的なドキュメント レベルのカスタマイズを作成した後は、カスタマイズの開発方法の詳細について、以下のトピックを参照してください。
ドキュメント レベルのカスタマイズで実行できる一般的なプログラミング タスク : ドキュメント レベルのカスタマイズのプログラミング
Excel 用のドキュメント レベルのカスタマイズに固有のプログラミング タスク: Excel ソリューション
Excel のオブジェクト モデル ドキュメントの使用 : Excel オブジェクト モデルの概要
Excel の UI のカスタマイズ (リボンへのカスタム タブの追加、独自の操作ウィンドウの作成など) : Office UI のカスタマイズ
Excel オブジェクト モデルでは不可能なタスクを Visual Studio の Office 開発ツールで提供される拡張 Excel オブジェクトを使用して実行する (たとえば、ドキュメントでのマネージ コントロールのホスト、Windows フォーム データ バインディング モデルを使用した Excel コントロールのデータへのバインド): 拡張オブジェクトによる Excel の自動化
Excel 用のドキュメント レベルのカスタマイズのビルドとデバッグ : Office ソリューションのビルドとデバッグ
Excel 用のドキュメント レベルのカスタマイズの配置 : Office ソリューションの配置