チュートリアル : オプション ボタンを使用してワークシートのグラフを更新する方法
更新 : 2007 年 11 月
対象 |
---|
このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。 プロジェクトの種類
Microsoft Office のバージョン
詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。 |
このチュートリアルでは、Microsoft Office Excel ワークシートでオプション ボタンを使用してオプションをすばやく切り替える際の基本事項について説明します。ここでは、グラフのスタイルを変更するオプションを扱います。
この結果完成したサンプルについては、Excel のコントロールのサンプルを参照してください。
このチュートリアルでは、次のタスクについて説明します。
ワークシートへのオプション ボタン グループの追加
オプション選択時のグラフ スタイルの変更
メモ : |
---|
次の手順で参照している 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 という名前のワークシートです。
データを追加するには
Excel 2003 または Excel 2007 を開きます。
[Sheet3] タブを右クリックし、ショートカット メニューの [名前の変更] をクリックします。
シートの名前を Data for Chart に変更します。
次のデータを 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 でグラフを追加するには
[挿入] メニューの [グラフ] をクリックします。
グラフ ウィザードが開きます。
既定の選択内容のままで [次へ] をクリックします。
[データ範囲] ボックスをクリックし、既定の選択をすべてクリアします。
Data for Chart シートで、A4 を左上隅とし E8 を右下隅とする、数値を含んだセル ブロックを選択します。
[次へ] をクリックし、[ステップ 3] の既定の設定をすべて承認して [次へ] をクリックします。
[ステップ 4] で、[オブジェクト] が選択されていることを確認します。
[オブジェクト] ボックスで [Sheet1] を選択します。
[完了] をクリックします。
グラフの位置を右上隅がセル E2 と揃うように調節します。
ファイルを ExcelChart.xls という名前でドライブ C に保存します。
Excel を終了します。
Excel 2007 でグラフを追加するには
[挿入] タブの [グラフ] グループで、[縦棒] をクリックし、[すべてのグラフの種類] をクリックします。
[グラフの挿入] ダイアログ ボックスで、[OK] をクリックします。
[デザイン] タブの [データ] で、[データの選択] をクリックします。
[データ ソースの選択] ダイアログ ボックスの [グラフ データの範囲] ボックス内でクリックし、既定の選択をクリアします。
Data for Chart シートで、A4 を左上隅とし E8 を右下隅とする、数値を含んだセル ブロックを選択します。
[データ ソースの選択] ダイアログ ボックスで、[OK] をクリックします。
グラフの位置を右上隅がセル E2 と揃うように調節します。
ファイルを ExcelChart.xls という名前でドライブ C に保存します。
Excel を終了します。
新規プロジェクトの作成
この手順では、ExcelChart ブックに基づく Excel ブック プロジェクトを作成します。
新しいプロジェクトを作成するには
My Excel Chart という名前の Excel ブック プロジェクトを作成します。ウィザードで、[既存のドキュメントをコピーする] をクリックします。
詳細については、「方法 : Visual Studio Tools for Office プロジェクトを作成する」を参照してください。
[参照] ボタンをクリックし、このチュートリアルの前の手順で作成したブックに移動します。
[OK] をクリックします。
Visual Studio により、デザイナで新しい Excel ブックが開き、My Excel Chart プロジェクトがソリューション エクスプローラに追加されます。
グラフのプロパティの設定
既存のブックを使用する新しい Excel ブック プロジェクトを作成すると、そのブック内にあるすべての名前付き範囲、リスト オブジェクト、およびグラフについて自動的にホスト コントロールが作成されます。Chart コントロールの名前は、[プロパティ] ウィンドウを使用して変更できます。
Chart コントロールの名前を変更するには
デザイナで Chart コントロールを選択し、[プロパティ] ウィンドウで以下のプロパティを変更します。
プロパティ
値
Name
dataChart
HasLegend
false
コントロールの追加
このワークシートでは、オプション ボタンを使用して、ユーザーがグラフのスタイルをすばやく変更できるようにします。ただし、オプション ボタンは一度に 1 つしか選択できないことが必要です。これは、1 つのボタンを選択した場合、同時にグループ内の他のボタンを選択できないことを意味します。ワークシートに複数のオプション ボタンを追加した場合、既定でこのような動作にはなりません。
この動作を実現する方法の 1 つとして、オプション ボタンを 1 つのユーザー コントロールにグループ化し、そのユーザー コントロールのコードを作成して、ユーザー コントロールをワークシートに追加することがあります。
ユーザー コントロールを追加するには
ソリューション エクスプローラで My Excel Chart プロジェクトを選択します。
[プロジェクト] メニューの [新しい項目の追加] をクリックします。
[新しい項目の追加] ダイアログ ボックスで [ユーザー コントロール] をクリックし、コントロールに ChartOptions という名前を指定して、[追加] をクリックします。
ユーザー コントロールにオプション ボタンを追加するには
デザイナでユーザー コントロールが非表示になっている場合は、ソリューション エクスプローラで ChartOptions をダブルクリックします。
[ツールボックス] の [コモン コントロール] タブから [Radio Button] コントロールをユーザー コントロールにドラッグし、以下のプロパティを変更します。
プロパティ
値
Name
columnChart
Text
Column Chart
2 番目のオプション ボタンをユーザー コントロールに追加し、以下のプロパティを変更します。
プロパティ
値
Name
barChart
Text
Bar Chart
3 番目のオプション ボタンをユーザー コントロールに追加し、以下のプロパティを変更します。
プロパティ
値
Name
lineChart
Text
Line Chart
4 番目のオプション ボタンをユーザー コントロールに追加し、以下のプロパティを変更します。
プロパティ
値
Name
areaBlockChart
Text
Area Block Chart
次に、オプション ボタンがクリックされたときにグラフを更新するコードを記述します。
オプション ボタンが選択されたときのグラフ スタイルの変更
次に、グラフ スタイルを変更するコードを追加します。これを行うには、ユーザー コントロールにパブリック イベントを作成し、選択の種類を設定するプロパティを追加し、各オプション ボタンの CheckedChanged イベントにイベント ハンドラを作成します。
ユーザー コントロールのイベントおよびプロパティを作成するには
ソリューション エクスプローラでユーザー コントロールを右クリックし、[コードの表示] をクリックします。
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 イベントを処理するには
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); } } }
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); } } }
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); } } }
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); } } }
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); }
ワークシートへのユーザー コントロールの追加
ソリューションをビルドすると、新しいユーザー コントロールは自動的にツールボックスに追加されます。このコントロールは、[ツールボックス] からワークシートにドラッグできます。
ユーザー コントロールをワークシートに追加するには
[ビルド] メニューの [ソリューションのビルド] をクリックします。
ChartOptions ユーザー コントロールがツールボックスに追加されます。
ソリューション エクスプローラで Sheet1.vb または Sheet1.cs を右クリックし、[デザイナの表示] をクリックします。
ツールボックスから ChartOptions コントロールをワークシートにドラッグします。
my_Excel_Chart_ChartOptions1 という名前の新しいコントロールがプロジェクトに追加されます。
コントロールの名前を ChartOptions1 に変更します。
グラフの種類の変更
グラフの種類を変更するには、ユーザー コントロールで選択されたオプションに基づいてスタイルを設定するイベント ハンドラを作成します。
ワークシートに表示されるグラフの種類を変更するには
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()); } }
C# では、次に示すように、ユーザー コントロールのイベント ハンドラを Startup イベントに追加する必要があります。イベント ハンドラの作成方法については、「方法 : Visual Studio Tools for Office でイベント ハンドラを作成する」を参照してください。
this.ChartOptions1.SelectionChanged += new EventHandler(ChartOptions1_SelectionChanged);
アプリケーションのテスト
ブックをテストして、オプション ボタンを選択したときにグラフのスタイルが正しく設定されることを確認できます。
ブックをテストするには
F5 キーを押してプロジェクトを実行します。
各種のオプション ボタンを選択します。
選択に合わせてグラフ スタイルが変更されることを確認します。
次の手順
このチュートリアルでは、ワークシートでオプション ボタンとグラフ スタイルを使用するときの基本事項について説明します。次に行う作業は以下のとおりです。
プロジェクトの配置。詳細については、「Office ソリューションの配置」を参照してください。
ボタンを使用したテキスト ボックスへのデータの読み込み。詳細については、「チュートリアル : ボタンを使用してワークシート内テキスト ボックスにテキストを表示する方法」を参照してください。
チェック ボックスを使用したワークシートの書式の変更。詳細については、「チュートリアル : CheckBox コントロールを使用したワークシート書式の変更」を参照してください。