チュートリアル: リボン XML を使用してカスタム タブを作成する

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

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

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

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

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

Note

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

前提条件

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

プロジェクトを作成する

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

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

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

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

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

VSTO アドイン タブを作成する

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

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

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

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

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

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

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

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

    protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
    {
        return new MyRibbon();
    }
    
  6. ソリューション エクスプローラーで、MyRibbonAddIn プロジェクトを右クリックし、[ビルド] をクリックします。 プロジェクトのビルドでエラーが発生しないことを確認します。

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

この VSTO アドインの目的は、定型句や特定の表を作業中のドキュメントに追加する手段をユーザーに提供することです。 このユーザー インターフェイスを提供するには、リボン 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 名前空間のエイリアスが作成されます。

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

    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 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;
        }
    }
    

VSTO アドインのテスト

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

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

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

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

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

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

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

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

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

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

次のステップ

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

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

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

  • カスタム操作ウィンドウを作成する。 詳しくは、「操作ウィンドウの概要」をご覧ください。

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