チュートリアル : 初めての 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 ブック プロジェクトを作成するには

  1. Visual Studio を起動します。

  2. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。

  3. テンプレート ペインで、[Visual C#] または [Visual Basic] を展開し、[Office] を展開します。

  4. 展開した [Office] ノードの下で、[2007] ノード (Excel 2007 がインストールされている場合) または [2010] ノード (Excel 2010 がインストールされている場合) を選択します。

  5. プロジェクト テンプレートの一覧で、[Excel 2007 ブック] または [Excel 2010 ブック] を選択します。

  6. [プロジェクト名] ボックスに「FirstWorkbookCustomization」と入力します。

  7. [OK] をクリックします。

    Visual Studio Tools for Office プロジェクト ウィザードが開きます。

  8. [新規ドキュメントの作成] を選択し、[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 コード ファイルが自動的にデザイナーで開かれます。

デザイナーでワークシートを閉じ、再び開く

プロジェクトを開発しているときにデザイナーで開いていたブックまたはワークシートを意図的にまたは誤って閉じた場合は、そのドキュメントを再び開くことができます。

デザイナーでワークシートを閉じ、再び開くには

  1. デザイナー ウィンドウの閉じるボタン (X) をクリックしてブックを閉じます。

  2. ソリューション エクスプローラーで、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 番目のテキスト行を追加するには

  1. ソリューション エクスプローラーで、Sheet1 を右クリックし、[コードの表示] をクリックします。

    Visual Studio でコード ファイルが開かれます。

  2. 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";
    }
    

プロジェクトのテスト

ブックをテストするには

  1. F5 キーを押して、プロジェクトをビルドおよび実行します。

    プロジェクトをビルドすると、コードはアセンブリにコンパイルされ、ブックに関連付けられます。 Visual Studio は、ブックおよびアセンブリのコピーをプロジェクトのビルド出力フォルダーに格納し、カスタマイズを実行できるように開発用コンピューター上のセキュリティ設定を行います。 詳細については、「Office ソリューション ビルド処理の概要」を参照してください。

  2. 次のテキストがブックに追加されることを確認します。

    This text was added by using the designer.

    This text was added by using code.

  3. ブックを閉じます。

プロジェクトのクリーンアップ

プロジェクトの開発が完了したら、ビルド プロセスによって作成されたビルド出力フォルダー内のファイルおよびセキュリティ設定を削除する必要があります。

開発用コンピューターから完成したプロジェクトをクリーンアップするには

  • Visual Studio で、[ビルド] メニューの [ソリューションのクリーン] をクリックします。

次の手順

Excel 用の基本的なドキュメント レベルのカスタマイズを作成した後は、カスタマイズの開発方法の詳細について、以下のトピックを参照してください。

参照

概念

Office ソリューションの開発の概要

Excel ソリューション

ドキュメント レベルのカスタマイズのプログラミング

Excel オブジェクト モデルの概要

拡張オブジェクトによる Excel の自動化

Office UI のカスタマイズ

Office ソリューションの配置

Office プロジェクト テンプレートの概要

その他の技術情報

Office ソリューションのビルドとデバッグ