リボン XMLRibbon XML

リボン (XML) 項目では、XML を使用してリボンをカスタマイズすることができます。The Ribbon (XML) item enables you to customize a ribbon by using XML. リボン (ビジュアル デザイナー) 項目でサポートされていない方法でリボンをカスタマイズする場合は、リボン (XML) 項目を使用します。Use the Ribbon (XML) item if you want to customize the ribbon in a way that is not supported by the Ribbon (Visual Designer) item. 各項目で実行できる処理の比較は、次を参照してください。リボンの概要します。For a comparison of what you can do with each item, see Ribbon overview.

適用されます: ドキュメントにこのトピックの情報が適用されます-レベルのプロジェクトおよび VSTO 追加-次のアプリケーション用のプロジェクトで: Excel;InfoPath 2013 と InfoPath 2010、Outlook;PowerPoint です。プロジェクトです。Visio;単語があります。Applies to: The information in this topic applies to document-level projects and VSTO Add-in projects for the following applications: Excel; InfoPath 2013 and InfoPath 2010; Outlook; PowerPoint; Project; Visio; Word. 詳細については、次を参照してください。 Office アプリケーションおよびプロジェクトの種類で使用できる機能します。For more information, see Features available by Office application and project type.

リボン (XML) 項目をプロジェクトに追加します。Add a Ribbon (XML) item to a project

[新しい項目の追加] ダイアログ ボックスから、 リボン (XML) 項目を任意の Office プロジェクトに追加できます。You can add a Ribbon (XML) item to any Office project from the Add New Item dialog box. Visual Studio によってプロジェクトに次のファイルが自動的に追加されます。Visual Studio automatically adds the following files to your project:

  • リボン XML ファイル。A Ribbon XML file. このファイルは、リボン ユーザー インターフェイス (UI) を定義します。This file defines the Ribbon user interface (UI). タブ、グループ、およびコントロールなどの UI 要素を追加するには、このファイルを使用します。Use this file to add UI elements such as tabs, groups, and controls. 詳細については、次を参照してください。リボン XML ファイル リファレンスこのトピックで後述します。For details, see Ribbon XML file reference later in this topic.

  • リボン コード ファイル。A Ribbon code file. このファイルには リボン クラスが含まれています。This file contains the Ribbon class. このクラスの名前は、 [新しい項目の追加] ダイアログ ボックスで リボン (XML) 項目に指定した名前になります。This class has the name that you specified for the Ribbon (XML) item in the Add New Item dialog box. Microsoft Office アプリケーションでは、このクラスのインスタンスを使用して、カスタムのリボンを読み込みます。Microsoft Office applications use an instance of this class to load the custom ribbon. 詳細については、次を参照してください。クラスの参照をリボンこのトピックで後述します。For details, see Ribbon class reference later in this topic.

    既定では、これらのファイルはカスタム グループを追加、アドインリボン タブ。By default, these files add a custom group to the Add-Ins tab in the ribbon.

Microsoft Office アプリケーションにカスタム リボンを表示します。Display the custom ribbon in a Microsoft Office application

追加した後、リボン (XML) 項目をプロジェクトにコードを追加する必要があります、 ThisAddinThisWorkbook、またはThisDocumentクラスオーバーライドする、 CreateRibbonExtensibilityObject Office アプリケーションにクラスのメソッドをリボン XML を返します。After you add a Ribbon (XML) item to your project, you must add code to the ThisAddin, ThisWorkbook, or ThisDocument class that overrides the CreateRibbonExtensibilityObject method and returns the Ribbon XML class to the Office application.

次のコード例は CreateRibbonExtensibilityObject メソッドをオーバーライドして、MyRibbon という名前のリボン XML クラスを返します。The following code example overrides the CreateRibbonExtensibilityObject method and returns a Ribbon XML class named MyRibbon.

protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
    return new MyRibbon();
}
Protected Overrides Function CreateRibbonExtensibilityObject() As  _
Microsoft.Office.Core.IRibbonExtensibility
    Return New MyRibbon()
End Function

カスタムのリボンの動作を定義します。Define the behavior of the custom ribbon

作成して、リボンのボタンのクリックしてなどのユーザー操作に応答できるコールバック メソッドします。You can respond to user actions, such as clicking a button on the ribbon, by creating callback methods. コールバック メソッドは Windows フォーム コントロールのイベントと似ていますが、UI 要素の XML の属性によって識別されます。Callback methods resemble events in Windows Forms controls, but they are identified by an attribute in the XML of the UI element. リボン クラスでメソッドを記述すると、コントロールは属性値と同じ名前を持つメソッドを呼び出します。You write methods in the Ribbon class, and a control calls the method that has the same name as the attribute value. たとえば、ユーザーがリボンのボタンをクリックしたときに呼び出されるコールバック メソッドを作成することができます。For example, you can create a callback method that is called when a user clicks a button on the ribbon. コールバック メソッドを作成するには、2 つの手順が必要です。Two steps are required to create a callback method:

  • コード内のコールバック メソッドを識別するリボン XML ファイル内のコントロールに、属性を割り当てます。Assign an attribute to a control in the Ribbon XML file that identifies a callback method in your code.

  • リボン クラスでコールバック メソッドを定義します。Define the callback method in the Ribbon class.

Note

Outlook では追加の手順が必要です。Outlook requires an additional step. 詳細については、次を参照してください。 Outlook のリボンをカスタマイズします。For more information, see Customize a ribbon for Outlook.

リボンからアプリケーションを自動化する方法について説明するチュートリアルでは、次を参照してください。チュートリアル。カスタム タブをリボン XML を使用して作成です。For a walkthrough that demonstrates how to automate an application from the ribbon, see Walkthrough: Create a custom tab by using Ribbon XML.

コントロールにコールバック メソッドを割り当てるAssign callback methods to controls

コールバック メソッドをリボン XML ファイル内のコントロールに割り当てるには、コールバック メソッドの種類とメソッドの名前を指定する属性を追加します。To assign a callback method to a control in the Ribbon XML file, add an attribute that specifies the type of the callback method and the name of the method. たとえば、次の要素は OnToggleButton1 という名前の OnToggleButton1」をご覧ください。For example, the following element defines a toggle button that has an onAction callback method named OnToggleButton1.

<toggleButton id="toggleButton1" onAction="OnToggleButton1" />

onAction は、特定のコントロールに関連付けられている主なタスクをユーザーが実行すると呼び出されます。onAction is called when the user performs the main task associated with a particular control. たとえば、トグル ボタンの onAction コールバック メソッドは、ユーザーがボタンをクリックするとが呼び出されます。For example, the onAction callback method of a toggle button is called when the user clicks the button.

属性で指定するメソッドは、どんな名前をつけてもかまいません。The method that you specify in the attribute can have any name. ただし、その名前はリボンのコード ファイルで定義するメソッドの名前と一致する必要があります。However, it must match the name of the method that you define in the Ribbon code file.

リボン コントロールに割り当てることができるコールバック メソッドにはさまざまな種類があります。There are many different types of callback methods that you can assign to Ribbon controls. 各コントロールのコールバック メソッドの完全な一覧は、技術記事を参照してください。 (パート 3/3) の開発者向け Office (2007) リボン ユーザー インターフェイスのカスタマイズします。For a complete list of the callback methods available for each control, see the technical article Customize the Office (2007) Ribbon user interface for developers (Part 3 of 3).

コールバック メソッドを定義します。Define callback methods

リボン クラスのコールバック メソッドはリボン コード ファイルで定義します。Define your callback methods in the Ribbon class in the Ribbon code file. コールバック メソッドにはいくつかの要件があります。A callback method has several requirements:

  • コールバック メソッドはパブリック メソッドとして宣言されなければなりません。It must be declared as public.

  • コールバック メソッドの名前は、リボン XML ファイル内のコントロールに割り当てたコールバック メソッドの名前と一致する必要があります。Its name must match the name of a callback method that you assigned to a control in the Ribbon XML file.

  • コールバック メソッドのシグネチャは、関連付けられているリボン コントロールの利用可能なコールバック メソッドの型のシグネチャと一致する必要があります。Its signature must match the signature of a type of callback method that is available for the associated Ribbon control.

    リボン コントロールのコールバック メソッドのシグネチャの完全な一覧は、技術記事を参照してください。 (パート 3/3) の開発者向け Office (2007) リボン ユーザー インターフェイスのカスタマイズします。For a complete list of the callback method signatures for Ribbon controls, see the technical article Customize the Office (2007) Ribbon user interface for developers (Part 3 of 3). Visual Studio では、リボン コード ファイルで作成するコールバック メソッドの IntelliSense サポートは提供されていません。Visual Studio does not provide IntelliSense support for callback methods that you create in the Ribbon code file. 有効なシグネチャに一致しないコールバック メソッドを作成した場合、コードはコンパイルされますが、ユーザーがコントロールをクリックしても、何も起こりません。If you create a callback method that does not match a valid signature, the code will compile, but nothing will occur when the user clicks the control.

    すべてのコールバック メソッドには、メソッドを呼び出すコントロールを表す Microsoft.Office.Core.IRibbonControl パラメーターがあります。All callback methods have a Microsoft.Office.Core.IRibbonControl parameter that represents the control that called the method. このパラメーターを使用して、同じコールバック メソッドを複数のコントロールで再利用できます。You can use this parameter to reuse the same callback method for multiple controls. 次のコード例は、ユーザーがクリックするコントロールに応じて異なるタスクを実行する onAction コールバック メソッドを示しています。The following code example demonstrates an onAction callback method that performs different tasks depending on which control the user clicks.

    public void OnActionCallback(Office.IRibbonControl control, bool isPressed)
    {
        if (control.Id == "checkBox1")
        {
            MessageBox.Show("You clicked " + control.Id);
        }
        else
        {
            MessageBox.Show("You clicked a different control.");
        }
    }
    
    Public Sub OnActionCallback(ByVal control As Office.IRibbonControl, _
        ByVal isPressed As Boolean)
    
        If (control.Id = "checkBox1") Then
            MessageBox.Show("You clicked " + control.Id)
        Else
            MessageBox.Show("You clicked a different control.")
        End If
    
    End Sub
    

リボン XML ファイル リファレンスRibbon XML file reference

要素を追加して、属性により、カスタム リボンをリボン XML ファイルに定義できます。You can define your custom ribbon by adding elements and attributes to the Ribbon XML file. 既定では、リボン XML ファイルには次の XML が含まれています。By default, the Ribbon XML file contains the following XML.

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnLoad">
  <ribbon>
    <tabs>
      <tab idMso="TabAddIns">
        <group id="MyGroup"
               label="My Group">
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

次の表は、リボン XML ファイルの既定の要素について説明しています。The following table describes the default elements in the Ribbon XML file.

要素Element 説明Description
customUIcustomUI VSTO アドイン プロジェクトでカスタムのリボンを表します。Represents the custom ribbon in the VSTO Add-in project.
ribbonribbon リボンを表します。Represents the ribbon.
tabstabs [リボン] タブのセットを表します。Represents a set of Ribbon tabs.
タブtab 単独の [リボン] タブを表します。Represents a single Ribbon tab.
groupgroup [リボン] タブのコントロールのグループを表します。Represents a group of controls on the Ribbon tab.

これらの要素では、カスタムのリボンの動作と外観を指定する属性があります。These elements have attributes that specify the appearance and behavior of the custom ribbon. 次の表は、リボン XML ファイルの既定の属性について説明しています。The following table describes the default attributes in the Ribbon XML file.

属性Attribute 親要素Parent element 説明Description
onLoadonLoad customUIcustomUI アプリケーションがリボンを読み込むときに呼び出されるメソッドを識別します。Identifies a method that is called when the application loads the ribbon.
idMsoidMso タブtab リボンに表示する組み込みタブを識別します。Identifies a built-in tab to display in the ribbon.
IDid groupgroup グループを識別します。Identifies the group.
labellabel groupgroup グループに表示するテキストを指定します。Specifies the text that appears on the group.

リボン XML ファイルの既定の要素と属性は、使用できる要素と属性の小さなサブセットです。The default elements and attributes in the Ribbon XML file are a small subset of the elements and attributes that are available. 使用可能な要素と属性の完全な一覧は、技術記事を参照してください。 (パート 2/3) の開発者向け Office (2007) リボン ユーザー インターフェイスのカスタマイズします。For a complete list of the available elements and attributes, see the technical article Customize the Office (2007) Ribbon user interface for developers (Part 2 of 3).

リボン クラスのリファレンスRibbon class reference

Visual Studio は、リボン コード ファイルにリボン クラスを生成します。Visual Studio generates the Ribbon class in the Ribbon code file. このクラスには、リボン上のコントロールのコールバック メソッドを追加します。Add the callback methods for controls on the ribbon to this class. このクラスは、 IRibbonExtensibility インターフェイスを実装します。This class implements the IRibbonExtensibility interface.

次の表はこのクラスの既定のメソッドについて説明しています。The following table describes the default methods in this class.

メソッドMethod 説明Description
GetCustomUI リボン XML ファイルの内容を返します。Returns the contents of the Ribbon XML file. Microsoft Office アプリケーションでは、カスタム リボンのユーザー インターフェイスを定義する XML 文字列を取得するには、このメソッドを呼び出します。Microsoft Office applications call this method to obtain an XML string that defines the user interface of your custom ribbon. このメソッドは、 GetCustomUI メソッドを実装します。This method implements the GetCustomUI method. 注: GetCustomUIをリボン XML ファイルの内容を返すだけに実装する必要があります、VSTO アドインを初期化するために使用しない必要があります。Note: GetCustomUI should be implemented only to return the contents of the Ribbon XML file; it should not be used to initialize your VSTO Add-in. 具体的には、 GetCustomUI の実装で、ダイアログ ボックスや他のウィンドウを表示しようとしてはいけません。In particular, you should not try to display dialog boxes or other windows in your GetCustomUI implementation. それ以外の場合、カスタム リボンが正しく動作しない可能性があります。Otherwise, the custom ribbon might not behave correctly. VSTO アドインを初期化するコードを実行する必要がある場合は、そのコードを ThisAddIn_Startup イベント ハンドラーに追加します。If you have to run code that initializes your VSTO Add-in, add the code to the ThisAddIn_Startup event handler.
OnLoad Microsoft.Office.Core.IRibbonControl パラメーターを Ribbon フィールドに割り当てます。Assigns the Microsoft.Office.Core.IRibbonControl parameter to the Ribbon field. Microsoft Office アプリケーションは、カスタム リボンが読み込まれるときに、このメソッドを呼び出します。Microsoft Office applications call this method when they load the custom ribbon. このフィールドを使用すると、カスタムのリボンを動的に更新します。You can use this field to dynamically update the custom ribbon. 詳細については、技術記事を参照してください。 (パート 1/3) の開発者向け Office (2007) リボン ユーザー インターフェイスのカスタマイズします。For more information, see the technical article Customize the Office (2007) Ribbon user interface for developers (Part 1 of 3).
GetResourceText GetCustomUI メソッドによって呼び出され、リボン XML ファイルの内容を取得します。Called by the GetCustomUI method to obtain the contents of the Ribbon XML file.

関連項目See also