リボン XML

更新 : 2007 年 11 月

対象

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

プロジェクトの種類

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

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

Microsoft Office のバージョン

  • Excel 2007

  • Word 2007

  • Outlook 2007

  • PowerPoint 2007

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

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

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

リボン (XML) 項目は、[新しい項目の追加] ダイアログ ボックスを使用することにより、どのような Visual Studio Tools for Office プロジェクトにも追加できます。Visual Studio Tools for Office によって、自動的に以下のファイルがプロジェクトに追加されます。

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

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

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

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

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

CreateRibbonExtensibilityObject メソッドをオーバーライドして Ribbon1 というリボン 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 ファイルのコントロールに割り当てます。

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

Aa942866.alert_note(ja-jp,VS.90).gifメモ :

Outlook 2007 には補足の手順が必要です。詳細については、「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)」を参照してください。Visual Studio Tools for Office は、リボン コード ファイル内に作成したコールバック メソッドに対して 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="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 ファイルの既定の要素について説明します。

要素

説明

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 Tools for Office は、リボン コード ファイルにリボン クラスを生成します。このクラスに、リボンのコントロールのコールバック メソッドを追加します。このクラスは、Microsoft.Office.Core.IRibbonExtensibility インターフェイスを実装します。

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

メソッド

説明

GetCustomUI

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

Aa942866.alert_note(ja-jp,VS.90).gifメモ :
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 のカスタマイズ