チュートリアル : オプション ボタンを使用してドキュメントのグラフを更新する方法
更新 : 2007 年 11 月
対象 |
---|
このトピックの情報は、指定された Visual Studio Tools for Office プロジェクトおよび Microsoft Office のバージョンにのみ適用されます。 プロジェクトの種類
Microsoft Office のバージョン
詳細については、「アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。 |
このチュートリアルでは、Microsoft Office Word のドキュメント レベルのカスタマイズでオプション ボタンを使用して、文書上でグラフのスタイルを選択するオプションをユーザーに提供する方法を示します。
このチュートリアルでは、次のタスクについて説明します。
デザイン時におけるドキュメント レベルのプロジェクトの文書へのグラフの追加
ユーザー コントロールへの追加によるオプション ボタンのグループ化
オプション選択時のグラフ スタイルの変更
この結果を完全なサンプルとして参照するには、「Word のコントロールのサンプル」を参照してください。
メモ : |
---|
お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。 |
前提条件
このチュートリアルを完了するには、次のコンポーネントが必要です。
Visual Studio Tools for Office (Visual Studio 2008 Professional および Visual Studio Team System のオプションの要素)
Microsoft Office Word 2003 または Microsoft Office Word 2007
このチュートリアルでは Word 2003 のメニューを使用しますが、Word 2007 のリボンでも同じオプションを使用できます。
プロジェクトの作成
まず、Word 文書プロジェクトを作成します。
新しいプロジェクトを作成するには
My Chart Options という名前の Word ドキュメント プロジェクトを作成します。ウィザードで、[新規ドキュメントの作成] をクリックします。詳細については、「方法 : Visual Studio Tools for Office プロジェクトを作成する」を参照してください。
新しい Word ドキュメントが Visual Studio のデザイナに開かれ、My Chart Options プロジェクトがソリューション エクスプローラに追加されます。
ドキュメントへのグラフの追加
Word 2003 プロジェクトでは、Visual Studio ツール バーの [挿入] メニューに、グラフを追加するための Word コマンドが含まれています。
グラフを追加するには
[挿入] メニューの [オブジェクト] をクリックします。
[オブジェクト] ダイアログ ボックスが表示されます。
メモ : [挿入] メニューが表示されない場合は、ドキュメントの中をクリックしてフォーカスを移動する必要があります。詳細については、「Visual Studio 環境における Office メニュー」を参照してください。
[新規作成] タブの [オブジェクトの種類] ボックスの [Microsoft Graph グラフ] を選択して、[OK] をクリックします。
文書のカーソル位置にグラフが追加され、[データシート] ウィンドウに既定のデータが表示されます。
[データシート] ウィンドウを閉じてグラフ内の既定値を受け入れ、ドキュメントの中をクリックしてグラフからフォーカスを移動します。
グラフを右クリックし、[オブジェクトの書式設定] をクリックします。
[オブジェクトの書式設定] ダイアログ ボックスの [レイアウト] タブの [四角] を選択して、[OK] をクリックします。
プロジェクトへのユーザー コントロールの追加
文書上のオプション ボタンは、既定では一度に 1 つしか選択できないようにはなりません。これらのオプション ボタンは、ユーザー コントロールに追加し、選択範囲を制御するコードを作成することによって、正しく機能するようになります。
ユーザー コントロールを追加するには
ソリューション エクスプローラで [My Chart Options] プロジェクトを選択します。
[プロジェクト] メニューの [新しい項目の追加] をクリックします。
[新しい項目の追加] ダイアログ ボックスの [ユーザー コントロール] をクリックし、コントロールに ChartOptions という名前を付けて [追加] をクリックします。
ユーザー コントロールに Windows フォーム コントロールを追加するには
デザイナでユーザー コントロールが非表示になっている場合は、ソリューション エクスプローラで ChartOptions をダブルクリックします。
[ツールボックス] の [コモン コントロール] タブから 1 つ目の [オプション ボタン] コントロールをユーザー コントロールにドラッグし、以下のプロパティを変更します。
プロパティ
値
Name
columnChart
Text
Column Chart
2 つ目の [オプション ボタン] をユーザー コントロールに追加し、次のプロパティを変更します。
プロパティ
値
Name
barChart
Text
Bar Chart
3 つ目の [オプション ボタン] をユーザー コントロールに追加し、次のプロパティを変更します。
プロパティ
値
Name
lineChart
Text
Line Chart
4 つ目の [オプション ボタン] をユーザー コントロールに追加し、次のプロパティを変更します。
プロパティ
値
Name
areaBlockChart
Text
Area Block Chart
参照の追加
ドキュメントのユーザー コントロールからグラフにアクセスするには、Microsoft Graph 11.0 Object Library への参照がプロジェクト内に必要です。
Microsoft Graph 11.0 Object Library への参照を追加するには
[プロジェクト] メニューの [参照の追加] をクリックします。
[参照の追加] ダイアログ ボックスが表示されます。
[COM] タブをクリックします。
[コンポーネント名] ボックスの一覧の [Microsoft Graph 11.0 Object Library] をクリックし、[OK] をクリックします。
オプション ボタンが選択されたときのグラフ スタイルの変更
ボタンを正しく動作させるために、ユーザー コントロールにパブリック イベントを作成し、選択の種類を設定するプロパティを追加し、各オプション ボタンの CheckedChanged イベントにプロシージャを作成します。
ユーザー コントロールにイベントとプロパティを作成するには
ソリューション エクスプローラでユーザー コントロールを右クリックし、[コードの表示] をクリックします。
SelectionChanged イベントと Selection プロパティを作成するコードを ChartOptions クラスに追加します。
Public Event SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Private selectedType As Microsoft.Office.Interop.Graph.XlChartType = _ Microsoft.Office.Interop.Graph.XlChartType.xlColumnClustered Public Property Selection() As Microsoft.Office.Interop.Graph.XlChartType Get Return Me.selectedType End Get Set(ByVal value As Microsoft.Office.Interop.Graph.XlChartType) Me.selectedType = value End Set End Property
public event EventHandler SelectionChanged; private Microsoft.Office.Interop.Graph.XlChartType selectedType = Microsoft.Office.Interop.Graph.XlChartType.xlColumnClustered; public Microsoft.Office.Interop.Graph.XlChartType Selection { get { return this.selectedType; } set { this.selectedType = value; } }
オプション ボタンの CheckedChange イベントを処理するには
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.Graph.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.Graph.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.Graph.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.Graph.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.Graph.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.Graph.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.Graph.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.Graph.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 ユーザー コントロールがツールボックスに追加されます。
ソリューション エクスプローラで ThisDocument.vb または ThisDocument.cs を右クリックし、[デザイナの表示] をクリックします。
ツールボックスから ChartOptions コントロールをドキュメントにドラッグします。
ChartOptions1 という新しいコントロールがプロジェクトに追加されます。
グラフ タイプの変更
ユーザー コントロールで選択されたオプションに基づいてグラフの種類を変更するイベント ハンドラを作成します。
ドキュメントに表示されているグラフのタイプを変更するには
次のイベント ハンドラを ThisDocument クラスに追加します。
Private Sub ChartOptions1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles ChartOptions1.SelectionChanged Try 'first object is the runtime storage control Dim index As Object = 2 Dim shape As Word.Shape = Me.Shapes.Item(index) 'Activate the shape shape.Activate() Dim dataChart As Graph.Chart = CType(shape.OLEFormat.Object, Graph.Chart) dataChart.ChartType = Me.ChartOptions1.Selection 'Deactivate the shape Me.ChartOptions1.Select() Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub
private void ChartOptions1_SelectionChanged(object sender, EventArgs e) { try { //first object is the runtime storage control object index = 2; Word.Shape shape = this.Shapes.get_Item(ref index); //Activate the shape shape.Activate(); Microsoft.Office.Interop.Graph.Chart dataChart = (Microsoft.Office.Interop.Graph.Chart)shape.OLEFormat.Object; dataChart.ChartType = this.ChartOptions1.Selection; //Deactivate the shape this.ChartOptions1.Select(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
C# では、ユーザー コントロールのイベント ハンドラを Startup イベントに追加する必要があります。
this.ChartOptions1.SelectionChanged += new EventHandler(ChartOptions1_SelectionChanged);
アプリケーションのテスト
文書をテストして、オプション ボタンを選択したときにグラフのスタイルが正常に更新されることを確認できます。
文書をテストするには
F5 キーを押してプロジェクトを実行します。
各オプション ボタンをオンにします。
選択に合わせてグラフ スタイルが変更されることを確認します。
次の手順
次に行う作業は以下のとおりです。
ボタンを使用してテキスト ボックスにデータを設定します。詳細については、「チュートリアル : ボタンを使用して文書内のテキスト ボックスにテキストを表示する方法」を参照してください。
コンボ ボックスからスタイルを選択して、書式を変更します。詳細については、「チュートリアル : CheckBox コントロールを使用したドキュメント書式の変更」を参照してください。
参照
概念
Word 文書上での Windows フォーム コントロールの使用
Office ドキュメントでの Windows フォーム コントロールの制限事項