次の方法で共有


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

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

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

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

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

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

[!メモ]

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

必須コンポーネント

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

-

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

ビデオへのリンク 関連のビデオ デモについては、「How Do I: Use the Ribbon Designer to Customize the Ribbon in Excel? (操作方法: リボン デザイナーを使用して Excel のリボンをカスタマイズする)」を参照してください。

プロジェクトの作成

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

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

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

    詳細については、「方法: Visual Studio で 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 が開き、[アドイン] タブがリボン上に表示されます。[アドイン] タブの [Insert Text] ボタンと [Insert Table] ボタンをクリックして、コードをテストします。

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

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

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

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

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

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

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

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

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

次の手順

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

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

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

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

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

参照

処理手順

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

概念

リボン XML

その他の技術情報

リボンの概要