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

Chart コントロールは、文書レベルのカスタマイズで、デザイン時および実行時に Microsoft Office Excel ワークシートに追加できます。 VSTO アドインでも、実行時に Chart コントロールを追加できます。

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

このトピックでは、次のタスクについて説明します。

デザイン時の Chart コントロールの追加

アプリケーションの中からグラフを追加するのと同じ方法で、ワークシートに Chart コントロールを追加できます。

Note

Chart コントロールは、[ツールボックス][データ ソース] ウィンドウからは使用できません。

Excel のワークシートに Chart ホスト コントロールを追加するには

  1. [挿入] タブの [グラフ] グループで、[縦棒] をクリックし、グラフのカテゴリをクリックして、目的のグラフの種類をクリックします。

  2. [グラフの挿入] ダイアログ ボックスで、[OK] をクリックします。

  3. [デザイン] タブの [データ] グループで、[データの選択] をクリックします。

  4. [データ ソースの選択] ダイアログ ボックスの [グラフ データの範囲] ボックス内をクリックし、既定の選択をオフにします。

  5. [グラフのデータ] シートで、グラフのデータが格納されているセルの範囲 (セル A5 から D8) を選択します。

  6. [データ ソースの選択] ダイアログ ボックスで、[OK] をクリックします。

実行時にドキュメント レベルのプロジェクトにグラフ コントロールを追加する

実行時に Chart コントロールを動的に追加できます。 動的に作成したグラフは、ドキュメントを閉じるとホスト コントロールとしてドキュメントに保持されません。 詳細については、「実行時に Office 文書にコントロールを追加する」を参照してください。

プログラムを使用してワークシートに Chart コントロールを追加するには

  1. Sheet1Startup イベント ハンドラーに以下のコードを挿入して、Chart コントロールを追加します。

    Microsoft.Office.Tools.Excel.Chart employeeData;
    employeeData = this.Controls.AddChart(25, 110, 200, 150, "employees");
    employeeData.ChartType = Excel.XlChartType.xl3DPie;
    
    // Gets the cells that define the data to be charted.
    Excel.Range chartRange = this.get_Range("A5", "D8");
    employeeData.SetSourceData(chartRange, missing);
    

VSTO アドイン プロジェクトで実行時にグラフ コントロールを追加する

プログラムを使用して Chart コントロールを VSTO アドイン プロジェクトの任意の開いているワークシートに追加できます。 詳細については、「実行時に VSTO アドインの Word 文書と Excel ブックを拡張する」を参照してください。

動的に作成されたグラフ コントロールは、ワークシートを閉じるとホスト コントロールとしてワークシートに保持されません。 詳細については、「実行時に Office 文書にコントロールを追加する」を参照してください。

プログラムを使用してワークシートに Chart コントロールを追加するには

  1. 次のコードでは、開いているワークシートに基づいたワークシート ホスト項目を生成し、Chart コントロールを追加します。

    private void AddChart()
    {
        Worksheet worksheet = Globals.Factory.GetVstoObject(
            Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet);
    
    
        Excel.Range cells = worksheet.Range["A5", "D8"];
        Chart chart = worksheet.Controls.AddChart(cells, "employees");
        chart.ChartType = Microsoft.Office.Interop.Excel.XlChartType.xl3DPie;
        chart.SetSourceData(cells);
    }
    

コードのコンパイル

この例の要件は以下のとおりです。

  • グラフ化するデータが、ワークシートの A5 ~ D8 の範囲に格納されていること。