Excel 自定义选项卡默认值

Excel 自定义选项卡默认值,excel,vsto,Excel,Vsto,我在VSTO的功能区中有一个自定义选项卡。第一次打开excel工作表时,默认选项卡为“主页”。我希望在打开excel工作表时,自定义选项卡作为默认选项卡打开。请告诉我如何完成此操作。您必须使用计时器来完成此操作,因为功能区是异步加载的,并且没有StartupTab属性 如果您使用的是Excel 2007,则必须通过功能区的IAccessible属性访问功能区,我在回答问题时介绍了这些属性 System.Timers.Timer tmr{get;set;} private void Ribbon1

我在VSTO的功能区中有一个自定义选项卡。第一次打开excel工作表时,默认选项卡为“主页”。我希望在打开excel工作表时,自定义选项卡作为默认选项卡打开。请告诉我如何完成此操作。

您必须使用计时器来完成此操作,因为功能区是异步加载的,并且没有
StartupTab
属性

如果您使用的是Excel 2007,则必须通过功能区的
IAccessible
属性访问功能区,我在回答问题时介绍了这些属性

System.Timers.Timer tmr{get;set;}
private void Ribbon1_加载(对象发送方,RibbonUIEventArgs e)
{
tmr=新系统计时器计时器(500)
{
启用=真
};
tmr.appead+=新系统计时器ElapsedEventHandler(RibbonActivateTimer);
}
私有void RibbonActivateTimer(对象源,System.Timers.ElapsedEventArgs e)
{
var tab=this.Tabs.SingleOrDefault(c=>((RibbonTab)c.Label==“YourStartupTab”);
if(tab!=null)//检查功能区选项卡是否包含功能区交易
{
if(double.Parse(Globals.this工作簿.Application.Version)>=14)//14=xl2010
{
this.RibbonUI.ActivateTab(tab.ControlId.CustomId);
注销计时器();
}
}
}
私有无效注销计时器()
{
tmr.Dispose();
}

您必须使用计时器来完成此操作,因为功能区是异步加载的,并且没有
StartupTab
属性

如果您使用的是Excel 2007,则必须通过功能区的
IAccessible
属性访问功能区,我在回答问题时介绍了这些属性

System.Timers.Timer tmr{get;set;}
private void Ribbon1_加载(对象发送方,RibbonUIEventArgs e)
{
tmr=新系统计时器计时器(500)
{
启用=真
};
tmr.appead+=新系统计时器ElapsedEventHandler(RibbonActivateTimer);
}
私有void RibbonActivateTimer(对象源,System.Timers.ElapsedEventArgs e)
{
var tab=this.Tabs.SingleOrDefault(c=>((RibbonTab)c.Label==“YourStartupTab”);
if(tab!=null)//检查功能区选项卡是否包含功能区交易
{
if(double.Parse(Globals.this工作簿.Application.Version)>=14)//14=xl2010
{
this.RibbonUI.ActivateTab(tab.ControlId.CustomId);
注销计时器();
}
}
}
私有无效注销计时器()
{
tmr.Dispose();
}

我也遇到了同样的问题,我发现这个问题没有得到解答。我在Excel 2013中使用VSTO。通过在自定义ribbon类(Microsoft.Office.Tools.ribbon.RibbonBase的子类)的加载事件处理程序中添加类似的代码,可以轻松实现这一点:


“yourCustomTabName”是自定义RibbonTab对象的控件ID。当您在RibbonTab designer中打开Ribbon选项卡时,可以在ControlId属性中找到它—就在(Name)属性下。

我也遇到了同样的问题,但这一问题没有得到解决。我在Excel 2013中使用VSTO。通过在自定义ribbon类(Microsoft.Office.Tools.ribbon.RibbonBase的子类)的加载事件处理程序中添加类似的代码,可以轻松实现这一点:


“yourCustomTabName”是自定义RibbonTab对象的控件ID。当您在RibbonTab designer中打开Ribbon选项卡时,可以在ControlId属性中找到它-就在(名称)属性下。

对于最近的Office,在您的Ribbon.cs文件中,在事件加载方法中放置以下行:

    private void YourRibbon_Load(object sender, RibbonUIEventArgs e)
    {
        Globals.Ribbons.YourRibbon.RibbonUI.ActivateTab("YOUR_TAB_CONTROL_ID");
    } 

对于最近的Office,在YourRibbon.cs文件中,在事件加载方法中放置以下行:

    private void YourRibbon_Load(object sender, RibbonUIEventArgs e)
    {
        Globals.Ribbons.YourRibbon.RibbonUI.ActivateTab("YOUR_TAB_CONTROL_ID");
    } 
检查以下答案:,适用于Office 2010。检查以下答案:,适用于Office 2010。