Office Fluent リボンの概要

注:

一部の Microsoft Office アプリケーションでの CommandBars の使用は、Office Fluent ユーザー インターフェイスの新しいリボン コンポーネントに置き換わりました。

Office Fluent リボンは、以前のバージョンの Office で提供される、レイヤー化されたメニュー、ツール バー、および作業ウィンドウのシステムを置き換えます。 リボンには、効率と検出性が最適化された、より単純なインターフェイス システムが備わっています。 また、リボンのコンテキスト メニュー、ポップヒント、ミニ ツールバー、およびキーボード ショートカットが機能強化されており、ユーザーの効率と生産性が向上します。

さらに、リボン拡張機能 (RibbonX) を使用して、ユーザー エクスペリエンスを向上することもできます。 リボンを構成するコンポーネントを操作するには、拡張マークアップ言語 (XML) およびいくつかの従来のプログラミング言語の 1 つを使用します。 XML はプレーン テキストなので、任意のテキスト エディターでカスタマイズ ファイルを作成したり、好みの XML エディターを使用したりできます。 また、各アプリケーションで同じプログラミング モデルが使用されているので、カスタマイズ ファイルを最小限の調整を加えるだけで再利用できます。 たとえば、Word、Excel、Access、または PowerPointで作成したカスタマイズ ファイルを再利用できます。

XML マークアップ ファイルを使用してリボンをカスタマイズすると、CommandBars オブジェクト モデルに基づく複雑なアドインを作成する必要がほとんどなくなります。 ただし、以前のバージョンの Office で作成されたアドインは、ほとんどまたはまったく修正することなく、リボンで引き続き機能します。 Word、Excel、または PowerPoint のリボンに対するアプリケーション レベルのカスタマイズを作成するには、以下の方法の 1 つを使用できます。

  • マネージド コードまたはアンマネージド コードで COM アドインを使用します。
  • .ppam ファイルや .xlam ファイルなど、アプリケーション固有のアドインを使用します。
  • Word でテンプレート (.dotm ファイル) を使用します。

通常、COM アドインのコードには、外部カスタマイズ ファイルやそのコード内の XML から XML マークアップを返すプロシージャが含まれています。 アプリケーションの起動時に、アドインは XML マークアップを返すコードを読み込んで実行します。 Office では、XSD スキーマに対して XML マークアップを検証し、メモリに読み込んでリボンに適用してからリボンを表示します。 メニュー項目とコントロールは、コールバック プロシージャを使用してアドインのコードを実行します。

ドキュメント レベルのカスタマイズでは、同じ XML マークアップに加えて Open XML 形式ファイル (拡張子は .docx, .docm, .xlsx, .xlsm, .pptx、または .pptm) を使用します。 この場合は、XML マークアップを含むカスタマイズ ファイルを作成し、フォルダーに保存します。 次に、Open XML 形式コンテナー内のパーツをカスタマイズ ファイルをポイントするように変更します。 Office アプリケーションでドキュメントを開くと、カスタマイズ ファイルがメモリに読み込まれてリボンに適用されます。 続いて、コマンドとコントロールによりドキュメント内のコードが呼び出され、それぞれに該当する機能が提供されます。

既存のソリューション

Office 2007 より前のバージョンの Office では、開発者は CommandBars オブジェクト モデルを使用して、UI を変更した Visual Basic コードを作成しました。 ほとんどの場合、Office でこのレガシー コードは修正なしで引き続き正常に動作します。 ただし、Office 2003 のツール バーに加えられた変更は、Office の [ アドイン ] タブに表示されるようになりました。

表示されるカスタマイズの種類は、アドインの元の設計によって異なります。 たとえば、Office では、以前のメニュー構造 ([ファイル] メニュー、[挿入] メニュー、[ツール] メニューなど) に追加した項目が含まれる [メニュー コマンド] グループが作成されます。 また、以前の組み込みのツール バー ([標準] ツール バー、[書式設定] ツール バー、[図] ツール バーなど) に追加した項目が含まれる [ツール バー コマンド] グループも作成されます。 さらに、アドインまたはドキュメントからのユーザー設定のツール バーが [アドイン] タブの [ユーザー設定のツールバー] グループに表示されます。

コールバック プロシージャがリボンに機能を追加する

リボン拡張機能を使用して、コールバックを指定し、実行時に UI からプロパティを更新してアクションを実行します。 たとえば、次の RibbonX マークアップのボタンの onAction コールバック メソッドを考えてみましょう。 <button id="myButton" onAction="MyButtonOnAction" />

このマークアップは、ボタンが選択されたときに MyButtonOnAction 関数を呼び出すように Office に指示します。 MyButtonOnAction 関数には、言語の選択に応じて特定のシグネチャがあります。Visual C# の例を次に示します。

public void MyButtonOnAction (IRibbonControl control) 
   { 
      if (control.Id=="myButton") 
      { 
         System.Windows.Forms.MessageBox.Show("Button clicked!"); 
      } 
   } 

COM アドインを使用してリボンをカスタマイズする

アプリケーション レベルでカスタマイズすると、どのドキュメントを開いても、変更したリボンがアプリケーションに表示されます。 このような変更を行うには、主に COM アドインを作成します。 COM アドインでリボンをカスタマイズするには、次の操作を行います。

  1. COM アドイン プロジェクトを作成します。 作成するアドインは、すべての COM アドインが実装する Extensibility.IDTExtensibility2 インターフェイスと、Microsoft.Office.Core 名前空間にある IRibbonExtensibility インターフェイスを実装する必要があります。
  2. アドインをビルドしてプロジェクトをセットアップし、プロジェクトをインストールします。
  3. Office アプリケーションを起動します。 アドインが読み込まれると、以前のバージョンの Office と同様にアドインを初期化する IDTExtensibility2::OnConnection イベントがトリガーされます。
  4. 次に、QueryInterface メソッドが呼び出され、IRibbonExtensibility インターフェイスが実装されているかどうかが確認されます。
  5. 実装されている場合、IRibbonExtensibility::GetCustomUI メソッドが呼び出され、XML カスタマイズ ファイル、またはプロシージャに埋め込まれた XML マークアップから XML マークアップが読み込まれ、カスタマイズがアプリケーションに読み込まれます。
  6. これで、ユーザーはカスタマイズされた UI を使用できるようになります。

Office Open XML 形式ファイルを使用してリボンをカスタマイズする

XML マークアップを使用して UI をカスタマイズするには、次の操作を実行します。

  1. 任意のテキスト エディターでカスタマイズ ファイルを作成します。 リボンへの新規コンポーネントの追加、既存コンポーネントの変更、またはコンポーネントの非表示を行う XML マークアップを追加します。 このファイルを「customUI.xml」という名前で保存します。

  2. デスクトップに customUI という名前のフォルダーを作成し、このフォルダーにカスタマイズ ファイルをコピーします。

  3. XML マークアップをユーザー設定の UI スキーマに照らして検証します。

    注:

    この手順は省略できます。

  4. Office アプリケーションでドキュメントを作成し、.docx.docm.xlsx.xlsm.pptm.pptx のいずれかの拡張子を付けて Open XML 形式ファイルとして保存します。 セキュリティ上の目的で、マクロを含むファイルには、接尾辞 m が付き、RibbonX コマンドおよびコントロールから呼び出されるプロシージャが格納されます。

  5. ドキュメント ファイル名に .zip 拡張子を追加し、ファイルを開きます。

  6. カスタマイズ ファイルをコンテナーに追加するために、フォルダーをファイルにドラッグします。

  7. .zip ファイル内にある .rels ファイルをデスクトップに解凍します。 .rels ファイルの入った _rels フォルダーがデスクトップにコピーされます。

  8. .rels ファイルを開き、ドキュメント ファイルとカスタマイズ ファイルの間にリレーションシップを作成する行を追加し、ファイルを保存します。

  9. _rels フォルダーをコンテナーに追加し直し、既存のファイルを上書きします。

  10. ファイル名から .zip 拡張子を削除して、元の名前に戻します。 Office ファイルを開くと、カスタマイズ内容を反映したリボンが表示されます。

XML マークアップ ファイルの一般的な形式

XML マークアップを使用してリボンをカスタマイズします。 以下の例は、Word のリボンをカスタマイズするのに使用できる XML マークアップ ファイルの一般的な形式を示しています。

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
  <ribbon> 
    <tabs> 
      <tab idMso="TabHome"> 
        <group idMso="GroupFont" visible="false" /> 
      </tab> 
      <tab id="CustomTab" label="My Tab"> 
        <group id="SampleGroup" label="Sample Group"> 
          <toggleButton id="ToggleButton1" size="large" label="Large Toggle Button" getPressed="MyToggleMacro"  /> 
          <checkBox id="CheckBox1" label="A CheckBox" screentip="This is a check box" onAction="MyCheckboxMacro" /> 
          <editBox id="EditBox1" getText="MyTextMacro" label="My EditBox" onChange="MyEditBoxMacro"/> 
          <comboBox id="Combo1" label="My ComboBox" onChange="MyComboBoxMacro"> 
            <item id="Zip1" label="33455" /> 
            <item id="Zip2" label="81611" /> 
            <item id="Zip3" label="31561" /> 
          </comboBox> 
          <advanced> 
            <button id="Launcher1" screentip="My Launcher" onAction="MyLauncherMacro" /> 
          </advanced> 
        </group> 
        <group id="MyGroup" label="My Group" > 
          <button id="Button" label="My Large Button" size="large" onAction="MyButtonMacro" /> 
          <button id="Button2" label="My Normal Button" size="normal" onAction="MyOtherButtonMacro" /> 
        </group > 
      </tab> 
    </tabs> 
  </ribbon> 
</customUI> 

このサンプルでは、Word のリボンに対して以下の順序で変更が加えられます。

  1. 既定の名前空間とユーザー設定の名前空間を宣言します。

  2. 組み込みの [ホーム] タブにある組み込みの [GroupFont] グループを非表示にします。

  3. 最後に組み込まれたタブの右側に新規の [CustomTab] タブを追加します。

    注:

    ユーザー設定タブなどのユーザー設定項目を作成する場合は id= identifier 属性を使用し、[TabHome] タブなどの組み込み項目を参照する場合は idMso= identifier 属性を使用します。

  4. 新規の [SampleGroup] グループを [My Tab] タブに追加します。

  5. 大きなサイズの ToggleButton1 ボタンを My Group に追加し、GetPressed コールバックと共に onAction コールバックを指定します。

  6. カスタムのヒントを使用して CheckBox1 チェック ボックスを マイ グループ に追加し、onAction コールバックを指定します。

  7. [EditBox1] 編集ボックスを [マイ グループ] に追加し、onChange コールバックを指定します。

  8. 3 つの項目を含む Combo1 コンボ ボックスを マイ グループ に追加します。 このコンボ ボックスでは、各項目のテキストを使用する onChange コールバックを指定します。

  9. onAction コールバック セットを使用して Launcher1 起動ツールを マイ グループ に追加します。 起動プログラムでは、ユーザーに追加のオプションを提供するユーザー設定のダイアログ ボックスも表示できます。

  10. 新規の [MyGroup] グループをユーザー設定のタブに追加します。

  11. MyGroup に大きなサイズの Button1 ボタンを追加し、onAction コールバックを指定します。

  12. MyGroup に標準サイズの Button1 ボタンを追加し、onAction コールバックを指定します。

従来のコマンド バー アドインの操作

COM アドインを作成した場合、通常はユーザーがアドインとやり取りする方法が必要になります。 以前のバージョンの Office では、CommandBars オブジェクト モデルに従って、アプリケーションにメニュー項目またはツールバー ボタンを追加しました。 今回のリリースの Office でも、ほとんどの場合、カスタム アプリケーションは変更なしでリボンで動作します。 ただし、 CommandBars オブジェクト モデルで行った変更、またはメニューまたは WordBasic や XML などのツール バーを変更したその他のテクノロジは、別の [アドイン ] タブに表示されます。これにより、ユーザーはコントロールを簡単に見つけることができます。

リボンを動的に更新する

コントロールのプロパティを返すコールバックは、繰り返し呼び出すように指定しない限り、通常は 1 回だけ呼び出されます。 コールバックの再クエリは、CustomUI 要素に onLoad コールバックを実装することによって実行できます。 このコールバックは、RibbonX マークアップ ファイルが正常に読み込まれたときに 1 回呼び出され、コードを IRibbonUI オブジェクトに渡します。

次のコード例では、実行時にコントロールを更新できるように IRibbonUI オブジェクトを取得します。

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="ribbonLoaded">

C# で、 Connect クラスにコールバックを記述します。

IRibbonUI myRibbon; 
 
     public void ribbonLoaded(IRibbonUI ribbon) { 
         myRibbon = ribbon; 
     } 

リボンを使用すると、ユーザーは Office アプリケーションを柔軟に操作できます。 リボンを作成およびカスタマイズするには、単純なテキストベースの宣言型 XML マークアップを使用します。 数行の XML を記述するだけで、ユーザーに適したインターフェイスを作成できます。 XML マークアップは 1 つのファイルに含まれているので、要件が変更されたときに、インターフェイスを容易に変更できます。 また、ユーザーが見つけやすい場所にコマンドを配置することで、ユーザーの生産性を向上することもできます。 最後に、リボンによってアプリケーション間の一貫性が確保されるので、各アプリケーションの学習にかかるユーザーの時間が削減されます。

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。