リボン (XML) 項目を使用すると、XML を使用してリボンをカスタマイズできます。 リボン (ビジュアル デザイナー) 項目でサポートされていない方法でリボンをカスタマイズする場合は、リボン (XML) 項目を使用します。 各項目で実行できる操作の比較については、「 リボンの概要」を参照してください。
適用対象: このトピックの情報は、次のアプリケーションのドキュメント レベルのプロジェクトと VSTO アドイン プロジェクトに適用されます: Excel、InfoPath 2013 および InfoPath 2010、Outlook、PowerPoint、Project、Visio、Word。 詳細については、「 Office アプリケーションとプロジェクトの種類で使用できる機能」を参照してください。
リボン (XML) 項目をプロジェクトに追加する
リボン (XML) 項目は、[新しいアイテムの追加] ダイアログ ボックスから任意の Office プロジェクトに追加できます。 Visual Studio によって、次のファイルがプロジェクトに自動的に追加されます。
リボン XML ファイル。 このファイルは、リボン ユーザー インターフェイス (UI) を定義します。 このファイルを使用して、タブ、グループ、コントロールなどの UI 要素を追加します。 詳細については、このトピックで後述する リボン XML ファイル リファレンスを参照 してください。
リボン コード ファイル。 このファイルには、 リボン クラスが含まれています。 このクラスには、[新しい項目の追加] ダイアログ ボックスでリボン (XML) 項目に指定した名前があります。 Microsoft Office アプリケーションでは、このクラスのインスタンスを使用してカスタム リボンを読み込みます。 詳細については、このトピックで後述する リボン クラス リファレンスを参照 してください。
既定では、これらのファイルはリボンの [ アドイン ] タブにカスタム グループを追加します。
Microsoft Office アプリケーションでカスタム リボンを表示する
プロジェクトにリボン (XML) 項目を追加した後、ThisAddin、ThisWorkbook、または ThisDocument クラスにコードを追加する必要があります。このクラスは、CreateRibbonExtensibilityObject メソッドをオーバーライドし、リボン XML クラスを Office アプリケーションに返します。
次のコード例では、 CreateRibbonExtensibilityObject メソッドをオーバーライドし、MyRibbon という名前のリボン XML クラスを返します。
protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
return new MyRibbon();
}
カスタム リボンの動作を定義する
コールバック メソッドを作成することで、リボン上のボタンをクリックするなど、ユーザーアクションに応答できます。 コールバック メソッドは Windows フォーム コントロールのイベントに似ていますが、UI 要素の XML の属性によって識別されます。 リボン クラスでメソッドを記述すると、コントロールは属性値と同じ名前のメソッドを呼び出します。 たとえば、ユーザーがリボン上のボタンをクリックしたときに呼び出されるコールバック メソッドを作成できます。 コールバック メソッドを作成するには、次の 2 つの手順が必要です。
コード内のコールバック メソッドを識別するリボン XML ファイル内のコントロールに属性を割り当てます。
リボン クラスでコールバック メソッドを定義します。
注
Outlook には追加の手順が必要です。 詳細については、「 Outlook のリボンをカスタマイズする」を参照してください。
リボンからアプリケーションを自動化する方法を示すチュートリアルについては、「 チュートリアル: リボン XML を使用してカスタム タブを作成する」を参照してください。
コントロールにコールバック メソッドを割り当てる
リボン XML ファイル内のコントロールにコールバック メソッドを割り当てるには、コールバック メソッドの型とメソッドの名前を指定する属性を追加します。 たとえば、次の要素は、という名前の OnToggleButton1 コールバック メソッドを持つトグル ボタンを定義します。
<toggleButton id="toggleButton1" onAction="OnToggleButton1" />
onAction は、ユーザーが特定のコントロールに関連付けられているメイン タスクを実行するときに呼び出されます。 たとえば、ユーザーがボタンをクリックすると、トグル ボタンの onAction コールバック メソッドが呼び出されます。
属性で指定するメソッドには、任意の名前を指定できます。 ただし、リボン コード ファイルで定義するメソッドの名前と一致する必要があります。
リボン コントロールに割り当てることができるコールバック メソッドには、さまざまな種類があります。 各コントロールで使用できるコールバック メソッドの完全な一覧については、技術的な記事「 開発者向けの Office (2007) リボン ユーザー インターフェイスのカスタマイズ (パート 3/3)」を参照してください。
コールバック メソッドを定義する
リボン コード ファイルのリボン クラスでコールバック メソッドを定義します。 コールバック メソッドには、いくつかの要件があります。
パブリックとして宣言する必要があります。
その名前は、リボン XML ファイル内のコントロールに割り当てたコールバック メソッドの名前と一致する必要があります。
そのシグネチャは、関連付けられているリボン コントロールで使用できるコールバック メソッドの種類のシグネチャと一致する必要があります。
リボン コントロールのコールバック メソッド シグネチャの完全な一覧については、技術記事「 開発者向けの Office (2007) リボン ユーザー インターフェイスのカスタマイズ (パート 3/3)」を参照してください。 Visual Studio では、リボン コード ファイルで作成するコールバック メソッドの IntelliSense サポートは提供されません。 有効なシグネチャと一致しないコールバック メソッドを作成すると、コードはコンパイルされますが、ユーザーがコントロールをクリックしても何も発生しません。
すべてのコールバック メソッドには、メソッドを呼び出したコントロールを表す IRibbonControl パラメーターがあります。 このパラメーターを使用すると、複数のコントロールに同じコールバック メソッドを再利用できます。 次のコード例は、ユーザーがクリックするコントロールに応じて異なるタスクを実行する onAction コールバック メソッドを示しています。
リボン 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 ファイルの既定の要素について説明します。
| 要素 | Description |
|---|---|
| customUI | VSTO アドイン プロジェクトのカスタム リボンを表します。 |
| リボン | リボンを表します。 |
| タブ | リボン タブのセットを表します。 |
| タブ | 1 つのリボン タブを表します。 |
| group | リボン タブのコントロールのグループを表します。 |
これらの要素には、カスタム リボンの外観と動作を指定する属性があります。 次の表では、リボン XML ファイルの既定の属性について説明します。
| 特性 | Parent 要素 | Description |
|---|---|---|
| onLoad | customUI | アプリケーションがリボンを読み込むときに呼び出されるメソッドを識別します。 |
| idMso | タブ | リボンに表示する組み込みタブを識別します。 |
| ID | group | グループを識別します。 |
| label | group | グループに表示されるテキストを指定します。 |
リボン XML ファイルの既定の要素と属性は、使用可能な要素と属性の小さなサブセットです。 使用可能な要素と属性の完全な一覧については、技術的な記事「 開発者向けの Office (2007) リボン ユーザー インターフェイスのカスタマイズ (パート 2/3)」を参照してください。
リボン クラス リファレンス
Visual Studio によってリボン コード ファイルにリボン クラスが生成されます。 リボン上のコントロールのコールバック メソッドをこのクラスに追加します。 このクラスによって、IRibbonExtensibility インターフェイスが実装されます。
次の表では、このクラスの既定のメソッドについて説明します。
| メソッド | Description |
|---|---|
GetCustomUI |
リボン XML ファイルの内容を返します。 Microsoft Office アプリケーションでは、このメソッドを呼び出して、カスタム リボンのユーザー インターフェイスを定義する XML 文字列を取得します。 このメソッドは、 GetCustomUI メソッドを実装します。
注:GetCustomUI リボン XML ファイルの内容を返すためだけに実装する必要があります。VSTO アドインの初期化には使用しないでください。 特に、 GetCustomUI の実装でダイアログ ボックスやその他のウィンドウを表示しないでください。 そうしないと、カスタム リボンが正しく動作しない可能性があります。 VSTO アドインを初期化するコードを実行する必要がある場合は、 ThisAddIn_Startup イベント ハンドラーにコードを追加します。 |
OnLoad |
IRibbonControl パラメーターを Ribbon フィールドに割り当てます。 Microsoft Office アプリケーションは、カスタム リボンを読み込むときにこのメソッドを呼び出します。 このフィールドを使用して、カスタム リボンを動的に更新できます。 詳細については、技術記事「 開発者向けの Office (2007) リボン ユーザー インターフェイスのカスタマイズ (パート 1/3)」を参照してください。 |
GetResourceText |
リボン XML ファイルの内容を取得するために、 GetCustomUI メソッドによって呼び出されます。 |