次の方法で共有


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

このチュートリアルでは、Microsoft Office Excel ワークシートでオプション ボタンを使用してオプションをすばやく切り替える際の基本事項について説明します。ここでは、グラフのスタイルを変更するオプションを扱います。

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

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

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

  • ワークシートへのオプション ボタン グループの追加

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

[!メモ]

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

必須コンポーネント

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

-

Microsoft Office Developer Tools が含まれているエディションの Visual Studio 2012。詳細については、「[Office ソリューションを開発できるようにコンピューターを構成する](bb398242\(v=vs.110\).md)」を参照してください。
  • Excel 2013 または Excel 2010。

ワークシートへのグラフの追加

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

データを追加するには

  1. Microsoft Excel を開きます。

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

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

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

    Q1

    Q2

    Q3

    Q4

    西

    500

    550

    550

    600

    600

    625

    675

    700

    450

    470

    490

    510

    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 コントロールの名前は、[プロパティ] ウィンドウを使用して変更できます。

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

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

    プロパティ

    価値

    名前

    dataChart

    HasLegend

    false

コントロールの追加

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

この動作を実現する方法の 1 つとして、オプション ボタンを 1 つのユーザー コントロールにグループ化し、そのユーザー コントロールのコードを作成して、ユーザー コントロールをワークシートに追加することがあります。

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

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

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

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

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

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

  2. [ツールボックス][コモン コントロール] タブから [Radio Button] コントロールをユーザー コントロールにドラッグし、以下のプロパティを変更します。

    プロパティ

    価値

    名前

    columnChart

    テキスト

    Column Chart

  3. 2 番目のオプション ボタンをユーザー コントロールに追加し、以下のプロパティを変更します。

    プロパティ

    価値

    名前

    barChart

    テキスト

    Bar Chart

  4. 3 番目のオプション ボタンをユーザー コントロールに追加し、以下のプロパティを変更します。

    プロパティ

    価値

    名前

    lineChart

    テキスト

    Line Chart

  5. 4 番目のオプション ボタンをユーザー コントロールに追加し、以下のプロパティを変更します。

    プロパティ

    価値

    名前

    areaBlockChart

    テキスト

    Area Block Chart

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

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

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

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

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

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

    Public Event SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
    
    Private selectedType As Microsoft.Office.Interop.Excel.XlChartType = _
        Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered
    
    Public Property Selection() As Microsoft.Office.Interop.Excel.XlChartType
        Get
            Return Me.selectedType
        End Get
        Set(ByVal value As Microsoft.Office.Interop.Excel.XlChartType)
            Me.selectedType = value
        End Set
    End Property
    
    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. areaBlockChart オプション ボタンの CheckedChanged イベント ハンドラーでグラフの種類を設定し、イベントを発生させます。

    Private Sub areaBlockChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles areaBlockChart.CheckedChanged
    
        If (CType(sender, RadioButton).Checked) Then
    
            Me.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlAreaStacked
            RaiseEvent SelectionChanged(Me, EventArgs.Empty)
        End If
    End Sub
    
    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. barChart オプション ボタンの CheckedChanged イベント ハンドラーで、グラフの種類を設定します。

    Private Sub barChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles barChart.CheckedChanged
    
        If (CType(sender, RadioButton).Checked) Then
    
            Me.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlBarClustered
            RaiseEvent SelectionChanged(Me, EventArgs.Empty)
        End If
    End Sub
    
    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. columnChart オプション ボタンの CheckedChanged イベント ハンドラーで、グラフの種類を設定します。

    Private Sub columnChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles columnChart.CheckedChanged
    
        If (CType(sender, RadioButton).Checked) Then
    
            Me.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered
            RaiseEvent SelectionChanged(Me, EventArgs.Empty)
        End If
    End Sub
    
    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. lineChart オプション ボタンの CheckedChanged イベント ハンドラーで、グラフの種類を設定します。

    Private Sub lineChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles lineChart.CheckedChanged
    
        If (CType(sender, RadioButton).Checked) Then
    
            Me.selectedType = Microsoft.Office.Interop.Excel.XlChartType.xlLineMarkers
            RaiseEvent SelectionChanged(Me, EventArgs.Empty)
        End If
    End Sub
    
    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 Sub ChartOptions1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles ChartOptions1.SelectionChanged
    
        Try
            dataChart.ChartType = Me.ChartOptions1.Selection
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
    
    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. 選択に合わせてグラフ スタイルが変更されることを確認します。

次の手順

このチュートリアルでは、ワークシートでオプション ボタンとグラフ スタイルを使用するときの基本事項について説明します。次に行う作業は以下のとおりです。

参照

概念

Excel を使用したチュートリアル