チュートリアル : リボン XML によるカスタム タブの作成

更新 : 2007 年 11 月

対象

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

プロジェクトの種類

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

  • アプリケーション レベルのプロジェクト

Microsoft Office のバージョン

  • Excel 2007

  • Word 2007

  • Outlook 2007

  • PowerPoint 2007

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

このチュートリアルでは、リボン (XML) 項目を使用してカスタム リボン タブを作成する方法について説明します。

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

  • [アドイン] タブへのボタンの追加。[アドイン] タブは、リボン XML ファイルに定義されている既定のタブです。

  • [アドイン] タブ上のボタンを使用した Microsoft Office Word 2007 の自動化。

Aa942955.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 Word 2007

ここに挙げた Visual Studio のバージョンでは、Visual Studio Tools for Office が既定でインストールされます。インストールされているかどうかを確認する方法については、「Visual Studio Tools for Office のインストール」を参照してください。

プロジェクトの作成

まず、Word 2007 アドイン プロジェクトを作成します。後の手順で、このドキュメントの [アドイン] タブをカスタマイズします。

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

  • MyRibbonAddIn という名前の Word アドイン プロジェクトを作成します。

    2007 Microsoft Office system 用の Word アドイン プロジェクト テンプレートを使用していることを確認します。詳細については、「方法 : Visual Studio Tools for Office プロジェクトを作成する」を参照してください。

    Visual Studio によって、ThisAddIn.cs コード ファイルまたは ThisAddIn.vb コード ファイルが開き、ソリューション エクスプローラMyRibbonAddIn プロジェクトが追加されます。

[アドイン] タブの作成

[アドイン] タブを作成するには、プロジェクトにリボン (XML) 項目を追加します。このチュートリアルの後半で、このタブにボタンを追加します。

[アドイン] タブを作成するには

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

  2. [新しい項目の追加] ダイアログ ボックスで、[リボン (XML)] をクリックします。

  3. 新しいリボンの名前を "MyRibbon" に変更し、[追加] をクリックします。

    デザイナに MyRibbon.cs ファイルまたは MyRibbon.vb ファイルが開きます。プロジェクトには、"MyRibbon.xml" という名前の XML ファイルも追加されます。

  4. ソリューション エクスプローラThisAddin.cs または ThisAddin.vb を右クリックし、[コードの表示] をクリックします。

  5. ThisAddin クラスに次のコードを追加します。このコードは、CreateRibbonExtensibilityObject メソッドをオーバーライドし、Office アプリケーションにリボン XML クラスを返します。

    Protected Overrides Function CreateRibbonExtensibilityObject() As  _
    Microsoft.Office.Core.IRibbonExtensibility
        Return New MyRibbon()
    End Function
    
    protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
    {
        return new MyRibbon();
    }
    
  6. ソリューション エクスプローラ[MyRibbonAddIn] プロジェクトを右クリックし、[ビルド] をクリックします。プロジェクトがエラーを発生させずにビルドすることを確認します。

[アドイン] タブへのボタンの追加

このアドインの目標は、定型句と特定の表をアクティブなドキュメントに追加する方法をユーザーに提供することです。このユーザー インターフェイスを提供するには、リボン XML ファイルを変更して、2 つのボタンを [アドイン] タブに追加します。このチュートリアルの後半で、これらのボタンのコールバック メソッドを定義します。リボン XML ファイルの詳細については、「リボン XML」を参照してください。

[アドイン] タブにボタンを追加するには

  1. ソリューション エクスプローラで、MyRibbon.xml を右クリックし、[開く] をクリックします。

  2. tab 要素の内容を次の XML に置き換えます。この XML は、既定のコントロール グループのラベルを Content に変更して、ラベルが Insert Text および Insert Table である 2 つのボタンを新しく追加します。

    <tab idMso="TabAddIns">
        <group id="ContentGroup" label="Content">
            <button id="textButton" label="Insert Text"
                 screentip="Text" onAction="OnTextButton"
                 supertip="Inserts text at the cursor location."/>
            <button id="tableButton" label="Insert Table"
                 screentip="Table" onAction="OnTableButton"
                 supertip="Inserts a table at the cursor location."/>
        </group>
    </tab>
    

ボタンを使用したドキュメントの自動化

ユーザーが [Insert Text] ボタンと [Insert Table] ボタンをクリックしたときにアクションを実行するには、これらのボタンの onAction コールバック メソッドを追加する必要があります。リボン コントロール用のコールバック メソッドの詳細については、「リボン XML」を参照してください。

ボタンのコールバック メソッドを追加するには

  1. ソリューション エクスプローラで、MyRibbon.cs または MyRibbon.vb を右クリックし、[開く] をクリックします。

  2. MyRibbon.cs ファイルまたは MyRibbon.vbファイルの先頭に次のコードを追加します。このコードによって、Microsoft.Office.Interop.Word 名前空間のエイリアスが作成されます。

    Imports Word = Microsoft.Office.Interop.Word
    
    using Word = Microsoft.Office.Interop.Word;
    
  3. MyRibbon クラスに次のメソッドを追加します。これは、アクティブなドキュメント内のカーソルの現在位置に文字列を追加する、[Insert Text] ボタンのコールバック メソッドです。

    Public Sub OnTextButton(ByVal control As Office.IRibbonControl)
        Dim currentRange As Word.Range = Globals.ThisAddIn.Application.Selection.Range
        currentRange.Text = "This text was added by the Ribbon."
    End Sub
    
    public void OnTextButton(Office.IRibbonControl control)
    {
        Word.Range currentRange = Globals.ThisAddIn.Application.Selection.Range;
        currentRange.Text = "This text was added by the Ribbon.";
    }
    
  4. MyRibbon クラスに次のメソッドを追加します。これは、アクティブなドキュメント内のカーソルの現在位置に表を追加する、[Insert Table] ボタンのコールバック メソッドです。

    Public Sub OnTableButton(ByVal control As Office.IRibbonControl)
        Dim missing As Object = System.Type.Missing
    
        Dim currentRange As Word.Range = Globals.ThisAddIn.Application.Selection.Range
        Dim newTable As Word.Table = Globals.ThisAddIn.Application.ActiveDocument.Tables.Add( _
                   currentRange, 3, 4)
    
        ' Get all of the borders except for the diagonal borders.
        Dim borders() As Word.Border = New Word.Border(6) {}
        borders(0) = newTable.Borders(Word.WdBorderType.wdBorderLeft)
        borders(1) = newTable.Borders(Word.WdBorderType.wdBorderRight)
        borders(2) = newTable.Borders(Word.WdBorderType.wdBorderTop)
        borders(3) = newTable.Borders(Word.WdBorderType.wdBorderBottom)
        borders(4) = newTable.Borders(Word.WdBorderType.wdBorderHorizontal)
        borders(5) = newTable.Borders(Word.WdBorderType.wdBorderVertical)
    
        ' Format each of the borders.
        For Each border As Word.Border In borders
            border.LineStyle = Word.WdLineStyle.wdLineStyleSingle
            border.Color = Word.WdColor.wdColorBlue
        Next
    End Sub
    
    public void OnTableButton(Office.IRibbonControl control)
    {
        object missing = System.Type.Missing;
        Word.Range currentRange = Globals.ThisAddIn.Application.Selection.Range;
        Word.Table newTable = Globals.ThisAddIn.Application.ActiveDocument.Tables.Add(
        currentRange, 3, 4, ref missing, ref missing);
    
        // Get all of the borders except for the diagonal borders.
        Word.Border[] borders = new Word.Border[6];
        borders[0] = newTable.Borders[Word.WdBorderType.wdBorderLeft];
        borders[1] = newTable.Borders[Word.WdBorderType.wdBorderRight];
        borders[2] = newTable.Borders[Word.WdBorderType.wdBorderTop];
        borders[3] = newTable.Borders[Word.WdBorderType.wdBorderBottom];
        borders[4] = newTable.Borders[Word.WdBorderType.wdBorderHorizontal];
        borders[5] = newTable.Borders[Word.WdBorderType.wdBorderVertical];
    
        // Format each of the borders.
        foreach (Word.Border border in borders)
        {
            border.LineStyle = Word.WdLineStyle.wdLineStyleSingle;
            border.Color = Word.WdColor.wdColorBlue;
        }
    }
    

アドインのテスト

プロジェクトを実行すると、Word 2007 が開き、[アドイン] タブがリボン上に表示されます。[アドイン] タブの [Insert Text] ボタンと [Insert Table] ボタンをクリックして、コードをテストします。

アドインをテストするには

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

  2. [アドイン] タブがリボンに表示されていることを確認します。

  3. [アドイン] タブをクリックします。

  4. [コンテンツ] グループがリボンに表示されていることを確認します。

  5. [コンテンツ] グループの [Insert Text] ボタンをクリックします。

    ドキュメント内のカーソルの現在位置に文字列が追加されます。

  6. [コンテンツ] グループの [Insert Table] ボタンをクリックします。

    ドキュメント内のカーソルの現在位置に表が追加されます。

次の手順

Office UI をカスタマイズする方法の詳細については、次のトピックで説明します。

  • 別の Office アプリケーションのリボンをカスタマイズする。リボンのカスタマイズをサポートするアプリケーションの詳細については、「リボンの概要」を参照してください。

  • リボン デザイナを使用して Office アプリケーションのリボンをカスタマイズする。詳細については、「リボン デザイナ」を参照してください。

  • カスタム操作ウィンドウを作成する。詳細については、「操作ウィンドウの概要」を参照してください。

  • Outlook フォーム領域を使用して Microsoft Office Outlook 2007 の UI をカスタマイズする。詳細については、「チュートリアル : Outlook フォーム領域のデザイン」を参照してください。

参照

処理手順

チュートリアル : リボン デザイナを使用したカスタム タブの作成

概念

リボンの概要

リボン XML