次の方法で共有


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

このチュートリアルでは、Microsoft Office Word のドキュメント レベルのカスタマイズでオプション ボタンを使用して、文書上でグラフのスタイルを選択するオプションをユーザーに提供する方法を示します。

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

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

  • デザイン時におけるドキュメント レベルのプロジェクトの文書へのグラフの追加

  • ユーザー コントロールへの追加によるオプション ボタンのグループ化

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

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

注意

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

必須コンポーネント

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

-

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

プロジェクトの作成

まず、Word 文書プロジェクトを作成します。

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

  • My Chart Options という名前の Word ドキュメント プロジェクトを作成します。 ウィザードで、[新規ドキュメントの作成] をクリックします。 詳細については、「方法: Visual Studio で Office プロジェクトを作成する」を参照してください。

    新しい Word ドキュメントが Visual Studio のデザイナーに開かれ、My Chart Options プロジェクトがソリューション エクスプローラーに追加されます。

ドキュメントへのグラフの追加

グラフを追加するには

  1. Visual Studio デザイナーでホストされている Word 文書のリボンで [挿入] タブをクリックします。

  2. [テキスト][オブジェクトの挿入] ドロップダウン ボタンをクリックし、[オブジェクト] をクリックします。

    [オブジェクト] ダイアログ ボックスが表示されます。

  3. [新規作成] タブの [オブジェクトの種類] ボックスの [Microsoft Graph グラフ] を選択して、[OK] をクリックします。

    文書のカーソル位置にグラフが追加され、[データシート] ウィンドウに既定のデータが表示されます。

  4. [データシート] ウィンドウを閉じてグラフ内の既定値を受け入れ、ドキュメントの中をクリックしてグラフからフォーカスを移動します。

  5. グラフを右クリックし、[オブジェクトの書式設定] をクリックします。

  6. [オブジェクトの書式設定] ダイアログ ボックスの [レイアウト] タブの [四角] を選択して、[OK] をクリックします。

プロジェクトへのユーザー コントロールの追加

文書上のオプション ボタンは、既定では一度に 1 つしか選択できないようにはなりません。 これらのオプション ボタンは、ユーザー コントロールに追加し、選択範囲を制御するコードを作成することによって、正しく機能するようになります。

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

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

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

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

ユーザー コントロールに Windows フォーム コントロールを追加するには

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

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

    プロパティ

    名前

    columnChart

    テキスト

    Column Chart

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

    プロパティ

    名前

    barChart

    テキスト

    Bar Chart

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

    プロパティ

    名前

    lineChart

    テキスト

    Line Chart

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

    プロパティ

    名前

    areaBlockChart

    テキスト

    Area Block Chart

参照の追加

ドキュメントのユーザー コントロールからグラフにアクセスするには、Microsoft.Office.Interop.Graph アセンブリへの参照がプロジェクト内に必要です。

Microsoft.Office.Interop.Graph アセンブリへの参照を追加するには

  1. [プロジェクト] メニューの [参照の追加] をクリックします。

    [参照の追加] ダイアログ ボックスが表示されます。

  2. [.NET] タブで [Microsoft.Office.Interop.Graph] をクリックし、[OK] をクリックします。 プロジェクトが Word 2007 を対象としている場合は、アセンブリのバージョン 12.0.0.0 を選択します。プロジェクトが Word 2010 を対象としている場合は、バージョン 14.0.0.0 を選択します。

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

ボタンを正しく動作させるために、ユーザー コントロールにパブリック イベントを作成し、選択の種類を設定するプロパティを追加し、各オプション ボタンの 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.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 イベントを処理するには

  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.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);
            }
        }
    }
    
  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.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);
            }
        }
    }
    
  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.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);
            }
        }
    }
    
  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.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);
            }
        }
    }
    
  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. ソリューション エクスプローラーThisDocument.vb または ThisDocument.cs を右クリックし、[デザイナーの表示] をクリックします。

  3. ツールボックスから ChartOptions コントロールをドキュメントにドラッグします。

    ChartOptions1 という新しいコントロールがプロジェクトに追加されます。

グラフ タイプの変更

ユーザー コントロールで選択されたオプションに基づいてグラフの種類を変更するイベント ハンドラーを作成します。

ドキュメントに表示されているグラフのタイプを変更するには

  1. 次のイベント ハンドラーを ThisDocument クラスに追加します。

    Private Sub ChartOptions1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles ChartOptions1.SelectionChanged
    
        Try
            Dim shape As Word.Shape = Me.Shapes.Item(1)
    
            ' 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
        {
            object index = 1;
            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);
        }
    }
    
  2. C# では、ユーザー コントロールのイベント ハンドラーを Startup イベントに追加する必要があります。

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

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

文書をテストして、オプション ボタンを選択したときにグラフのスタイルが正常に更新されることを確認できます。

文書をテストするには

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

  2. 各オプション ボタンをオンにします。

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

次の手順

次に行う作業は以下のとおりです。

参照

概念

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

Word 文書上での Windows フォーム コントロールの使用

Office ドキュメントでの Windows フォーム コントロールの制限事項

その他の技術情報

Office 開発のサンプルとチュートリアル