次の方法で共有


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

更新 : 2007 年 11 月

対象

このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。

プロジェクトの種類

  • ドキュメント レベルのプロジェクト

Microsoft Office のバージョン

  • Excel 2003

  • Excel 2007

詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

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

この結果完成したサンプルについては、Excel のコントロールのサンプルを参照してください。

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

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

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

ms178767.alert_note(ja-jp,VS.90).gifメモ :

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

前提条件

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

  • Visual Studio Tools for Office (Visual Studio 2008 Professional および Visual Studio Team System のオプションの要素)

  • Microsoft Office Excel 2003 または Microsoft Office Excel 2007

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

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

データを追加するには

  1. Excel 2003 または Excel 2007 を開きます。

  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 2003 と Excel 2007 では異なります。

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

  1. [挿入] メニューの [グラフ] をクリックします。

    グラフ ウィザードが開きます。

  2. 既定の選択内容のままで [次へ] をクリックします。

  3. [データ範囲] ボックスをクリックし、既定の選択をすべてクリアします。

  4. Data for Chart シートで、A4 を左上隅とし E8 を右下隅とする、数値を含んだセル ブロックを選択します。

  5. [次へ] をクリックし、[ステップ 3] の既定の設定をすべて承認して [次へ] をクリックします。

  6. [ステップ 4] で、[オブジェクト] が選択されていることを確認します。

  7. [オブジェクト] ボックスで [Sheet1] を選択します。

  8. [完了] をクリックします。

  9. グラフの位置を右上隅がセル E2 と揃うように調節します。

  10. ファイルを ExcelChart.xls という名前でドライブ C に保存します。

  11. Excel を終了します。

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

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

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

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

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

  5. Data for Chart シートで、A4 を左上隅とし E8 を右下隅とする、数値を含んだセル ブロックを選択します。

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

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

  8. ファイルを ExcelChart.xls という名前でドライブ C に保存します。

  9. Excel を終了します。

新規プロジェクトの作成

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

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

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

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

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

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

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

グラフのプロパティの設定

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

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

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

    プロパティ

    Name

    dataChart

    HasLegend

    false

コントロールの追加

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

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

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

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

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

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

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

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

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

    プロパティ

    Name

    columnChart

    Text

    Column Chart

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

    プロパティ

    Name

    barChart

    Text

    Bar Chart

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

    プロパティ

    Name

    lineChart

    Text

    Line Chart

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

    プロパティ

    Name

    areaBlockChart

    Text

    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 の呼び出しの後に追加できます。イベント ハンドラの作成方法については、「方法 : Visual Studio Tools for 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 イベントに追加する必要があります。イベント ハンドラの作成方法については、「方法 : Visual Studio Tools for Office でイベント ハンドラを作成する」を参照してください。

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

アプリケーションのテスト

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

ブックをテストするには

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

  2. 各種のオプション ボタンを選択します。

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

次の手順

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

参照

概念

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