7

Word vsto アドインに次の ribbon.xml があります。

<tab id="TabLetters" getVisible="IsLettersTabVisible" label="Letters">
 <group id="LettersGroup" label="Letters">
  <toggleButton id="NewWithTemplate"
              label="New using template Controls"
              size="large"
              imageMso="FileNew"
              onAction="NewTemplated" />
  </toggleButton>
 </group>
</tab>

そして、クリックイベントの背後にある次のコード:

public void NewTemplated(Office.IRibbonControl control, bool value)
{
  CloseDocument();

  var doc = Globals.ThisAddIn.Application.Documents.Add(Template: @"LETTER_V2.dotx", Visible: true);
  doc.Activate();

  _ribbon.ActivateTab("TabLetters");
}

これにより、リボンタブが開いた新しいウィンドウが表示されると予想していましたが、表示/現在のホームタブのままです。自分のタブが表示されるようにするにはどうすればよいですか?

4

5 に答える 5

4

アクティブなタブを設定するには、次の 2 つの方法を使用できます。

TabLetters.RibbonUI.ActivateTab("TabLetters");また

Globals.Ribbons.CustomRibbon.Tabs[Your tab id].RibbonUI.ActivateTab("TabLetters");
于 2013-02-05T06:39:10.530 に答える
1

Excel 2013 では、次のコードを使用する必要がありました。

try
{
    //  Attempt to set the my VSTO ribbon bar as the active ribbon.
    string controlID = Globals.Ribbons.GetRibbon<MikesRibbon>().MikesTab.ControlId.ToString();
    this.RibbonUI.ActivateTab(controlID);
}
catch
{
}

私がつまずいたのは、ControlID をActivateTab関数に渡す方法でした。

MikesRibbon.csVS2013 でファイル (または同等のファイル)を開く必要があります。FILEリボンの外観が表示され、リボンのタブ名の横に 灰色のタブが表示されます。

このデザイナ画面で、リボンのタブ (つまり、 の右側のタブ) をクリックすると、[FILEプロパティ] ウィンドウ値が表示ControlIDされ、選択した値に設定できます。

于 2015-12-15T13:03:50.390 に答える
0

Office 2007 もサポートする必要があるすべてのユーザー (私のように) のために。これは、Office 2007の (醜いが機能する) ソリューションです。

  1. オフィスアプリケーションを開く
  2. Alt キーを押して、カスタム リボン タブのキーボード ショートカットを表示します。
  3. コードでは、 SendKeys.SendWait関数を介してこのキーを送信できるようになりました。

それが誰かを助けることを願っています。よろしく、ヨルグ


コード:

    public void FocusMyCustomRibbonTab()
    {
        if (IsExcel2007())
        {
            Globals.Ribbons.GetRibbon<MyRibbon>().tabMyRibbonTab.KeyTip = "GGG";

            //Excel 2007: Must send "ALT" key combination to activate tab, here "GGG"
            SendKeys.Send("%");                       
            SendKeys.Send("{G}");                     
            SendKeys.Send("{G}");                     
            SendKeys.Send("{G}");                     
            SendKeys.Send("%");                       
        }
        else
        {
            //Excel 2010 or higher: Build in way to activate tab
            if (this.ribbon.RibbonUI != null)
            {
                this.ribbon.RibbonUI.ActivateTab("MY_RIBBON_TAB_NAME");
            }
        }
    }

    public static bool IsExcel2007()
    {
        return (Globals.ThisAddIn.Application.Version.StartsWith("12"));
    }
于 2013-12-27T10:51:13.113 に答える
0

Word 2016 では、RibbonUI.ActivateTabMso(controlID) を使用して、一般的な Word リボン タブをアクティブにします。

さらに、アドインを追加することで、リボンへの正しい参照を取得できます。

static internal Microsoft.Office.Tools.Ribbon.OfficeRibbon rUI = null;


private void WorkBenchRibbon_Load(object sender, Microsoft.Office.Tools.Ribbon.RibbonUIEventArgs e)
    {
        rUI = ((Microsoft.Office.Tools.Ribbon.OfficeRibbon)sender).Ribbon;
    }
于 2017-10-12T07:56:30.250 に答える