C# Excel功能区选项卡选择更改事件

C# Excel功能区选项卡选择更改事件,c#,excel,vsto,C#,Excel,Vsto,我正在使用VSTO开发| Excel 2007 | C#。是否有任何事件标识excel功能区中的选项卡选择已更改?在VSTO2010中,添加了以编程方式切换所选选项卡的功能。诺姆·艾斯布鲁克对此表示怀疑 this.RibbonUI.ActivateTabMso("TabAddIns"); 因此,虽然没有可以锁定的事件,但至少可以切换所选选项卡。例如,我将使用sheet selection事件;当用户在工作簿的不同工作表之间切换时,我将更改他们选择的选项卡。每张图纸将对应于不同的功能区选项卡。此

我正在使用VSTO开发| Excel 2007 | C#。是否有任何事件标识excel功能区中的选项卡选择已更改?

在VSTO2010中,添加了以编程方式切换所选选项卡的功能。诺姆·艾斯布鲁克对此表示怀疑

this.RibbonUI.ActivateTabMso("TabAddIns");

因此,虽然没有可以锁定的事件,但至少可以切换所选选项卡。例如,我将使用sheet selection事件;当用户在工作簿的不同工作表之间切换时,我将更改他们选择的选项卡。每张图纸将对应于不同的功能区选项卡。

此问题的可能副本仅适用于Office 2007的VSTO。我很难找到Office 2010的信息;有什么想法吗?@PederRice:Office 2010型号也没有公开功能区选项卡的
更改
事件,但是链接的答案演示了如何通过Microsoft Active Accessibility与功能区对话。我只对MSAA略知一二,因此可能有一种方法可以访问
change
事件。谢谢您提供的信息。我在下面附上另一篇关于以编程方式切换选项卡的文章,这可能在某些情况下提供了一种解决方法situations@PederRice:该部分包含在链接答案中,但由于缺少正式术语,
ActivateTab
方法不是识别,
Focused
给定
RibbonTab
的属性。将功能区更改为您想要的功能区与询问功能区已经是什么完全无关(即,
get
vs.
set
)。目前,只有通过MSAA才能获得功能区信息。此外,OP还询问了Excel2007的情况,
ActivateTab
对其不适用。这是一个很好的观点,@PeterMajeed。正如我在回答中提到的,我只是想确保人们明白,根据他们的情况,可能会有变通办法。你可能需要有点创意。