チュートリアル: ラジオ ボタンを使用したワークシート内のグラフの更新

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

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

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

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

  • ワークシートにラジオ ボタンのグループを追加する。

  • オプションを選択したときのグラフ スタイルの変更。

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

[前提条件]

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

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

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

データを追加するには

  1. Microsoft Excel を開きます。

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

  3. シートの名前を グラフのデータに変更します。

  4. セル A4 を左上隅に、E8 を右下隅にして、次のデータを グラフのデータ に追加します。

    リージョン/四半期 Q1 Q2 Q3 Q4
    西 500 550 550 600
    600 625 675 七百
    450 470 490 510
    800 7:50 775 790

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

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

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

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

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

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

  5. [ グラフのデータ ] シートで、数値を含むセルのブロックを選択します。このブロックには、左上隅に A4 が含まれ、右下隅の E8 が含まれます。

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

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

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

  9. Excel を終了します。

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

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

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

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

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

  2. [ブラウズ] ボタンをクリックし、このチュートリアルで前に作成したブックに移動します。

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

    Visual Studio は、デザイナーで新しい Excel ブックを開き、ソリューション エクスプローラーマイ Excel グラフ プロジェクトを追加します。

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

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

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

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

    プロパティ 価値
    名前 dataChart
    HasLegend

コントロールの追加

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

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

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

  1. ソリューション エクスプローラー[マイ Excel グラフ] プロジェクトを選択します。

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

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

ユーザー コントロールにラジオ ボタンを追加するには

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

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

    プロパティ 価値
    名前 columnChart
    Text 縦棒グラフ
  3. ユーザー コントロールに 2 つ目のラジオ ボタンを追加し、次のプロパティを変更します。

    プロパティ 価値
    名前 barChart
    Text 横棒グラフ
  4. ユーザー コントロールに 3 つ目のラジオ ボタンを追加し、次のプロパティを変更します。

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

    プロパティ 価値
    名前 areaBlockChart
    Text 領域ブロック グラフ

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

ラジオ ボタンが選択されているときにグラフのスタイルを変更する

これで、グラフ スタイルを変更するコードを追加できます。 これを行うには、ユーザー コントロールにパブリック イベントを作成し、選択の種類を設定するプロパティを追加し、各ラジオ ボタンの 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. 選択内容に合わせてグラフ スタイルが変更されることを確認します。

次のステップ

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