ショートカット メニューにコマンドを追加する

このトピックでは、VSTO アドインを使用して、Office アプリケーションのショートカット メニューにコマンドを追加する方法を示します。

対象: このトピックの情報は、ドキュメントレベルのプロジェクトおよび VSTO アドイン プロジェクトに適用されます。 「Office アプリケーションおよびプロジェクトの種類別の使用可能な機能」を参照してください。

Office のショートカット メニューにコマンドを追加するには

  1. [リボン XML] 項目をドキュメント レベルのプロジェクトまたは VSTO アドイン プロジェクトに追加します。 詳細については、「方法: リボンのカスタマイズの概要」を参照してください。 In

  2. ソリューション エクスプローラーで、 ThisAddin.cs または ThisAddin.vbを選択します。

  3. メニュー バーで [表示]>[コード] の順に選択します。

    コード エディターで ThisAddin クラス ファイルが開きます。

  4. 次のコードを ThisAddin クラスに追加します。 このコードは、CreateRibbonExtensibilityObject メソッドをオーバーライドし、Office アプリケーションにリボン XML クラスを返します。

    protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
    {
          return new Ribbon1();
    }
    
  5. [ソリューション エクスプローラー]でリボン XML ファイルを選択します。 既定では、リボン XML ファイルには Ribbon1.xml という名前が付けられます。

  6. メニュー バーで [表示]>[コード] の順に選択します。

    コード エディターでリボン XML ファイルが開きます。

  7. コード エディターで、ショートカット メニューとショートカット メニューに追加するコントロールを記述する XML を追加します。

    次の例では、ボタン、メニュー、および Gallery コントロールを Word ドキュメントのショートカット メニューに追加します。 このショートカット メニューのコントロール ID は、ContextMenuText です。 Office 2010 ショートカットのコントロール ID の完全な一覧については、「Office 2010 ヘルプ ファイル: Office Fluent ユーザー インターフェイスのコントロール ID」を参照してください。

    <?xml version="1.0" encoding="UTF-8"?>
    <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
      <contextMenus>
        <contextMenu idMso="ContextMenuText">
          <button id="MyButton" label="My Button" insertBeforeMso="HyperlinkInsert" onAction="GetButtonID" />
          <menu id="MySubMenu" label="My Submenu" >
            <button id="MyButton2" label="Button on submenu" />
          </menu>
          <gallery id="galleryOne" label="My Gallery">
            <item id="item1" imageMso="HappyFace" />
            <item id="item2" imageMso="HappyFace" />
            <item id="item3" imageMso="HappyFace" />
            <item id="item4" imageMso="HappyFace" />
          </gallery>
        </contextMenu>
      </contextMenus>
    </customUI>
    
  8. ソリューション エクスプローラーで、 MyRibbon.cs または MyRibbon.vbを選択します。

  9. 処理する各コントロールの Ribbon1 クラスに、コールバック メソッドを追加します。

    次のコールバック メソッドは、 [My Button] ボタンを処理します。 このコードは、作業中のドキュメントの現在のカーソル位置に文字列を追加します。

    public void GetButtonID(Office.IRibbonControl control)
    {
        Microsoft.Office.Interop.Word.Range currentRange = Globals.ThisAddIn.Application.Selection.Range;
        currentRange.Text = "This text was added by the context menu named My Button.";
    }