1

VSTO のリボンにカスタム タブがあります。Excel シートを初めて開いたとき、既定のタブは "ホーム" です。Excel シートを開いたときにカスタム タブが既定で開かれるようにしたいのですが、これを実現する方法を教えてください。

4

3 に答える 3

0

リボンは非同期的に読み込まれ、プロパティがないため、これを行うにはタイマーを使用する必要がありStartupTabます。

Excel 2007 を使用している場合は、リボンのプロパティを使用してリボンにアクセスする必要があります。これについては、 Excel で VSTO カスタム リボンを選択IAccessibleする という質問への回答で説明しています。

System.Timers.Timer tmr { get; set; }

private void Ribbon1_Load(object sender, RibbonUIEventArgs e)
{
    tmr = new System.Timers.Timer(500)
    {
        Enabled = true
    };
    tmr.Elapsed += new System.Timers.ElapsedEventHandler(RibbonActivateTimer);
}

private void RibbonActivateTimer(object source, System.Timers.ElapsedEventArgs e)
{
    var tab = this.Tabs.SingleOrDefault(c => ((RibbonTab)c).Label == "YourStartupTab");
    if (tab != null)  // check to see if ribbon tab contains the ribbon deal
    {
        if (double.Parse(Globals.ThisWorkbook.Application.Version) >= 14) //14 = xl2010
        {
            this.RibbonUI.ActivateTab(tab.ControlId.CustomId);
            DeRegisterTimer();
        }
    }
}

private void DeRegisterTimer()
{
    tmr.Dispose();
}
于 2012-09-05T16:51:04.477 に答える