Share via


チュートリアル : オプション ボタンを使用してワークシートのグラフを更新する方法

このチュートリアルでは、Microsoft Office Excel ワークシート上のオプション ボタンを使って、ユーザーがオプションをすばやく切り替えられるようにする基本的な方法について説明します。 今回は、オプションによってグラフのスタイルが変更されるようにします。

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

完全なサンプルの結果を確認するには、「Office 開発のサンプルとチュートリアル」にある Excel コントロールのサンプルを参照してください。

このチュートリアルでは、次の作業について説明します。

  • ワークシートに一連のオプション ボタンを追加する。

  • オプション選択時のグラフ スタイルの変更

Note

次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。 これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。 詳細については、「Visual Studio IDE のカスタマイズ」を参照してください。

前提条件

このチュートリアルを実行するには、次のコンポーネントが必要です。

ワークシートにグラフを追加する

既存のブックをカスタマイズする Excel ブック プロジェクトを作成できます。 このチュートリアルでは、ブックにグラフを追加した後、そのブックを新しい Excel ソリューションで使用します。 このチュートリアルのデータ ソースは、Data for Chart という名前のワークシートです。

データを追加するには

  1. Microsoft Excel を開きます。

  2. [Sheet3] タブを右クリックし、ショートカット メニューの [名前の変更] をクリックします。

  3. シートの名前を Data for Chart に変更します。

  4. Data for Chart に次のデータを追加し、A4 が左上隅、E8 が右下隅になるようにします。

    リージョン/四半期 Q1 Q2 Q3 Q4
    West 500 550 550 600
    East 600 625 675 700
    North 450 470 490 510
    South 800 750 775 790

    次に、最初のワークシートにグラフを追加して、データを表示します。

Excel でグラフを追加するには

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

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

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

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

  5. [Data for Chart] シートで、数値が格納されているセルのブロックを選択します (A4 が左上隅、E8 が右下隅になっているブロック)。

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

  7. 右上隅がセル E2 と揃うように、グラフの位置を変更します。

  8. ファイルを C ドライブに保存し、名前を ExcelChart.xlsx とします。

  9. Excelを終了します。

新しいプロジェクトの作成

この手順では、ExcelChart ブックに基づいて Excel ブック プロジェクトを作成します。

新しいプロジェクトを作成するには

  1. My Excel Chart という名前で Excel ブック プロジェクトを作成します。 ウィザードで、[既存のドキュメントをコピーする] を選択します。

    詳細については、「方法: Visual Studio で Office プロジェクトを作成する」を参照してください。

  2. [参照] ボタンをクリックし、このチュートリアルで先ほど作成したブックを参照します。

  3. OK をクリックします。

    Visual Studio によって、新しい Excel ブックがデザイナーで開かれ、My Excel Chart プロジェクトがソリューション エクスプローラーに追加されます。

グラフのプロパティを設定する

既存のブックを使用する新しい Excel ブック プロジェクトを作成すると、ブック内のすべての名前付き範囲、リスト オブジェクト、およびグラフに対して、ホスト コントロールが自動的に作成されます。 Chart コントロールの名前は、[プロパティ] ウィンドウを使って変更できます。

グラフ コントロールの名前を変更するには

  1. デザイナーで Chart コントロールを選択し、[プロパティ] ウィンドウで次のプロパティを変更します。

    プロパティ
    名前 dataChart
    HasLegend false

コントロールの追加

このワークシートでは、オプション ボタンを使って、グラフのスタイルをユーザーがすばやく変更できるようにします。 ただし、オプション ボタンは排他的にする必要があります。つまり、1 つのボタンが選択されているときに、グループ内の他のボタンを同時に選択することはできません。 ワークシートに複数のオプション ボタンを追加した場合、この動作は既定では発生しません。

この動作を追加する 1 つの方法は、ユーザー コントロール上のオプション ボタンをグループ化し、ユーザー コントロールの背後のコードを記述した後、ユーザー コントロールをワークシートに追加することです。

ユーザー コントロールを追加するには

  1. ソリューション エクスプローラーで、[My Excel Chart] プロジェクトを選択します。

  2. [プロジェクト] メニューの [新しい項目の追加] をクリックします。

  3. [新しい項目の追加] ダイアログ ボックスで [ユーザー コントロール] をクリックし、コントロールに「ChartOptions」という名前を指定して [追加] をクリックします。

ユーザー コントロールにオプション ボタンを追加するには

  1. デザイナーにユーザー コントロールが表示されていない場合は、ソリューション エクスプローラー[ChartOptions] をダブルクリックします。

  2. [ツールボックス][コモン コントロール] タブから、[オプション ボタン] コントロールをユーザー コントロールへドラッグし、次のプロパティを変更します。

    プロパティ
    名前 columnChart
    テキスト Column Chart
  3. 2 つ目のオプション ボタンをユーザー コントロールに追加し、次のプロパティを変更します。

    プロパティ
    名前 barChart
    テキスト Bar Chart
  4. 3 つ目のオプション ボタンをユーザー コントロールに追加し、次のプロパティを変更します。

    プロパティ
    名前 lineChart
    テキスト 折れ線グラフ
  5. 4 つ目のオプション ボタンをユーザー コントロールに追加し、次のプロパティを変更します。

    プロパティ
    名前 areaBlockChart
    テキスト 面ブロック グラフ

    次に、オプション ボタンがクリックされたときにグラフを更新するためのコードを記述します。

オプション ボタンが選択されたときにグラフのスタイルを変更する

これで、グラフのスタイルを変更するためのコードを追加する準備ができました。 これを行うには、ユーザー コントロール上にパブリック イベントを作成し、選択の種類を設定するためのプロパティを追加して、各オプション ボタンの CheckedChanged イベントに対するイベント ハンドラーを作成します。

ユーザー コントロールにイベントおよびプロパティを作成するには

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

  2. ChartOptions クラスにコードを追加して、SelectionChanged イベントと Selection プロパティを作成します。

    public event EventHandler SelectionChanged;
    
    private Microsoft.Office.Interop.Excel.XlChartType selectedType =
        Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered;
    
    public Microsoft.Office.Interop.Excel.XlChartType Selection
    {
        get
        {
            return this.selectedType;
        }
        set
        {
            this.selectedType = value;
        }
    }
    

オプション ボタンの CheckedChanged イベントを処理するには

  1. CheckedChanged オプション ボタンの areaBlockChart イベント ハンドラーでグラフの種類を設定し、イベントを発生させます。

    private void areaBlockChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlAreaStacked;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  2. CheckedChanged オプション ボタンの barChart イベント ハンドラーでグラフの種類を設定します。

    private void barChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlBarClustered;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  3. CheckedChanged オプション ボタンの columnChart イベント ハンドラーでグラフの種類を設定します。

    private void columnChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  4. CheckedChanged オプション ボタンの lineChart イベント ハンドラーでグラフの種類を設定します。

    private void lineChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlLineMarkers;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  5. C# では、オプション ボタンに対してイベント ハンドラーを追加する必要があります。 このコードを、ChartOptions への呼び出しの後で InitializeComponent コンストラクターに追加できます。 イベント ハンドラーの作成方法について詳しくは、「方法: Office プロジェクトでイベント ハンドラーを作成する」を参照してください。

    public ChartOptions()
    {
        InitializeComponent();
    
        areaBlockChart.CheckedChanged += new EventHandler(areaBlockChart_CheckedChanged);
        barChart.CheckedChanged += new EventHandler(barChart_CheckedChanged);
        columnChart.CheckedChanged += new EventHandler(columnChart_CheckedChanged);
        lineChart.CheckedChanged += new EventHandler(lineChart_CheckedChanged);
    }
    

ワークシートにユーザー コントロールを追加する

ソリューションをビルドすると、新しいユーザー コントロールが自動的にツールボックスに追加されます。 その後、このコントロールをツールボックスからワークシートへとドラッグできます。

ワークシートにユーザー コントロールを追加するには

  1. [ビルド] メニューの [ソリューションのビルド] をクリックします。

    ChartOptions ユーザー コントロールがツールボックスに追加されます。

  2. ソリューション エクスプローラーで、Sheet1.vb または Sheet1.cs を右クリックし、[デザイナーの表示] をクリックします。

  3. ChartOptions コントロールを、ツールボックスからワークシートにドラッグします。

    my_Excel_Chart_ChartOptions1 という新しいコントロールがプロジェクトに追加されます。

  4. コントロールの名前を ChartOptions1 に変更します。

グラフの種類を変更する

グラフの種類を変更するには、ユーザー コントロールで選択されたオプションに基づいてスタイルを設定するイベント ハンドラーを作成します。

ワークシートに表示されるグラフの種類を変更するには

  1. Sheet1 クラスに次のイベント ハンドラーを追加します。

    private void ChartOptions1_SelectionChanged(object sender, EventArgs e)
    {
        try
        {
            dataChart.ChartType = this.ChartOptions1.Selection;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }
    
  2. C# では、次に示すように、ユーザー コントロールのイベント ハンドラーを Startup イベントに追加する必要があります。 イベント ハンドラーの作成方法について詳しくは、「方法: Office プロジェクトでイベント ハンドラーを作成する」を参照してください。

    this.ChartOptions1.SelectionChanged += new EventHandler(ChartOptions1_SelectionChanged);
    

アプリケーションをテストする

これで、ブックをテストし、オプション ボタンが選択されたときにグラフのスタイルが正しく設定されるかどうかを確認する準備ができました。

ブックをテストするには

  1. F5 キーを押してプロジェクトを実行します。

  2. オプション ボタンを選択するには

  3. 選択した内容に合わせてグラフのスタイルが変わることを確認します。

次のステップ

このチュートリアルでは、ワークシートでオプション ボタンとグラフ スタイルを使用する基本的な方法について説明しました。 ここでは、次の作業を行います。