次の方法で共有


リボン XML

リボン (XML) 項目により、XML を使用してリボンをカスタマイズできます。 リボン (XML) 項目を使用すると、リボン (ビジュアル デザイナー) 項目ではサポートされていない方法でリボンをカスタマイズできます。 2 種類の項目で実行できる操作の比較については、「リボンの概要」を参照してください。

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

プロジェクトへのリボン (XML) 項目の追加

[新しい項目の追加] ダイアログ ボックスから、[リボン (XML)] 項目を任意の Office プロジェクトに追加できます。 プロジェクトに次のファイルが自動的に追加されます。

  • リボン XML ファイル。 このファイルにはリボンのユーザー インターフェイス (UI) が定義されます。 このファイルを使用して、タブ、グループ、コントロールなどの UI 要素を追加します。 詳細については、後の「リボン XML ファイル リファレンス」を参照してください。

  • リボン コード ファイル。 このファイルには、リボン クラスが含まれています。 このクラスの名前は、[新しい項目の追加] ダイアログ ボックスでリボン (XML) 項目に指定した名前になります。 Microsoft Office アプリケーションは、このクラスのインスタンスを使用してカスタム リボンを読み込みます。 詳細については、後の「リボン クラス リファレンス」を参照してください。

既定では、これらのファイルはリボンの [アドイン] タブにカスタム グループを追加します。

Microsoft Office アプリケーションでのカスタム リボンの表示

リボン (XML) 項目をプロジェクトに追加した後で、ThisAddinThisWorkbookThisDocument のいずれかのクラスに、CreateRibbonExtensibilityObject メソッドをオーバーライドして Office アプリケーションにリボン XML クラスを返すコードを追加する必要があります。

CreateRibbonExtensibilityObject メソッドをオーバーライドして MyRibbon というリボン 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();
}

カスタム リボンの動作の定義

コールバック メソッドを作成すると、リボン上のボタンのクリックなどのユーザー アクションに応答できます。 コールバック メソッドは、Windows フォーム コントロールのイベントに似ていますが、UI 要素の XML の属性で識別されます。 リボン クラスにメソッドを記述すると、コントロールは属性値と同じ名前を持つメソッドを呼び出します。 たとえば、ユーザーがリボンのボタンをクリックしたときに呼び出されるコールバック メソッドを作成できます。 コールバック メソッドを作成するには、次の 2 つの手順が必要です。

  • コードのコールバック メソッドを識別する属性をリボン XML ファイルのコントロールに割り当てます。

  • リボン クラスにコールバック メソッドを定義します。

注意

Outlook には補足の手順が必要です。 詳細については、「Outlook のリボンのカスタマイズ」を参照してください。

リボンからアプリケーションを自動化する方法を示すチュートリアルについては、「チュートリアル : リボン XML によるカスタム タブの作成」を参照してください。

コントロールへのコールバック メソッドの割り当て

リボン XML ファイルのコントロールにコールバック メソッドを割り当てるには、コールバック メソッドの種類とメソッドの名前を指定する属性を追加します。 たとえば、次の要素は、OnToggleButton1 という名前の onAction コールバック メソッドを持つトグル ボタンを定義します。

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

ユーザーが特定のコントロールに関連した主なタスクを実行すると、onAction が呼び出されます。 たとえばユーザーがボタンをクリックすると、トグル ボタンの onAction コールバック メソッドが呼び出されます。

属性に指定するメソッドには、任意の名前を付けることができます。 ただし、その名前は、リボン コード ファイルに定義したメソッド名と一致する必要があります。

リボン コントロールに割り当てることができるコールバック メソッドには、さまざまな種類があります。 各コントロールで使用できるコールバック メソッドの完全なリストについては、技術文書「Customizing the Office (2007) Ribbon User Interface for Developers (Part 3 of 3)」を参照してください。

コールバック メソッドの定義

リボン クラスのコールバック メソッドは、リボン コード ファイルで定義します。 コールバック メソッドには、次のような要件があります。

  • パブリックとして宣言する必要があります。

  • 名前が、リボン XML ファイルのコントロールに割り当てたコールバック メソッドの名前と一致する必要があります。

  • シグネチャが、関連するリボン コントロールで使用可能なコールバック メソッドの型のシグネチャと一致する必要があります。

リボン コントロールのコールバック メソッド シグネチャの完全なリストについては、技術文書「Customizing the Office (2007) Ribbon User Interface for Developers (Part 3 of 3) (Office (2007) リボン ユーザー インターフェイスのカスタマイズ (開発者向け) (パート 3/3))」を参照してください。 Visual Studio では、リボン コード ファイルで作成したコールバック メソッドの IntelliSense サポートは提供されません。 有効なシグネチャと一致しないコールバック メソッドを作成しても、コードはコンパイルされますが、ユーザーがコントロールをクリックしたときに何も起こりません。

すべてのコールバック メソッドには、メソッドを呼び出すコントロールを表す Microsoft.Office.Core.IRibbonControl パラメーターがあります。 このパラメーターを使用して、複数のコントロールで同じコールバック メソッドを再利用することもできます。 次のコード例は、ユーザーがクリックするコントロールに応じて異なるタスクを実行する onAction コールバック メソッドを示します。

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
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.");
    }
}

リボン XML ファイル リファレンス

要素と属性をリボン XML ファイルに追加して、カスタム リボンを定義できます。 既定では、リボン XML ファイルには次の XML が含まれています。

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="https://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 ファイルの既定の要素について説明します。

要素

説明

customUI

アドイン プロジェクトのカスタム リボンを表します。

ribbon

リボンを表します。

tabs

リボン タブのセットを表します。

tab

1 つのリボン タブを表します。

group

リボン タブのコントロールのグループを表します。

これらの要素には、カスタム リボンの外観と動作を指定する属性があります。 次の表で、リボン XML ファイルの既定の属性について説明します。

属性

親要素

説明

onLoad

customUI

アプリケーションがリボンを読み込んだときに呼び出されるメソッドを識別します。

idMso

tab

リボンに表示する組み込みタブを識別します。

id

group

グループを識別します。

label

group

グループに表示されるテキストを指定します。

リボン XML ファイルの既定の要素と属性は、使用できる要素と属性の小さいサブセットです。 使用可能な要素および属性の完全なリストについては、技術文書「Customizing the Office (2007) Ribbon User Interface for Developers (Part 2 of 3)」を参照してください。

リボン クラス リファレンス

Visual Studio によってリボン コード ファイルにリボン クラスが生成されます。 このクラスに、リボンのコントロールのコールバック メソッドを追加します。 このクラスは、Microsoft.Office.Core.IRibbonExtensibility インターフェイスを実装します。

次の表で、このクラスの既定のメソッドについて説明します。

メソッド

説明

GetCustomUI

リボン XML ファイルの内容を返します。 Microsoft Office アプリケーションは、このメソッドを呼び出して、カスタム リボンのユーザー インターフェイスを定義する XML 文字列を取得します。 このメソッドは、IRibbonExtensibility.GetCustomUI(String) メソッドを実装します。

メモメモ
GetCustomUI は、リボン XML ファイルの内容を返す場合にのみ実装し、アドインの初期化には使用しないでください。特に、ダイアログ ボックスや他のウィンドウを GetCustomUI の実装に表示しようとしないでください。カスタム リボンが正しく動作しない可能性があります。アドインを初期化するためにコードを実行する必要がある場合は、ThisAddIn_Startup イベント ハンドラーにコードを追加してください。

OnLoad

Microsoft.Office.Core.IRibbonControl パラメーターを ribbon フィールドに割り当てます。 Microsoft Office アプリケーションは、カスタム リボンが読み込まれると、このメソッドを呼び出します。 このフィールドを使用して、カスタム リボンを動的に更新することができます。 詳細については、技術文書「Customizing the Office (2007) Ribbon User Interface for Developers (Part 1 of 3)」を参照してください。

GetResourceText

リボン XML ファイルの内容を取得するために GetCustomUI メソッドによって呼び出されます。

参照

処理手順

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

概念

リボンの概要

Office UI のカスタマイズ