首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Excel中选择VSTO自定义功能区

在Excel中选择VSTO自定义功能区
EN

Stack Overflow用户
提问于 2010-01-06 02:57:51
回答 3查看 5.3K关注 0票数 2

当VSTO代码在Excel 2007中创建列表对象并应用表格样式时,“表格工具/设计”选项卡将自动激活。然后,当用户选择非表格单元格时,默认情况下将激活“主页”选项卡。是否有办法抑制此行为或将活动选项卡重置为启动该操作的自定义选项卡?我想要的是自定义功能区在创建表的操作后可见。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-07 04:54:00

我在another post中也提供了同样的答案。

在VSTO2010中,添加了以编程方式切换所选选项卡的功能。关于它的Norm Estabrook blogged

this.RibbonUI.ActivateTabMso("TabAddIns");

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

如果将此事件与工作表SelectionChanged事件配对,则可以确保在它们更改所选单元格之后将它们带回相应的选项卡(而不是TabHome)。

票数 2
EN

Stack Overflow用户

发布于 2010-01-21 22:36:28

我不认为你会认为这是一个“答案”,但我能找到的最好的事情是有人在MSDN上建议我给功能区分配一个键盘快捷键,然后当我假设用户需要看到功能区时使用Application.SendKeys来选择它(在我创建初始表之后的启动时,等等)。

祝你好运,我希望你能找到一个更好的答案--我会很乐意在这种情况下更新我的应用程序!

票数 0
EN

Stack Overflow用户

发布于 2015-01-19 23:23:57

对于所有需要支持Office2007的人来说(像我一样)。这是一个适用于Office2007的(丑陋的,但工作的)解决方案:

  1. 打开office应用程序
  2. 按ALT,然后查看自定义功能区选项卡的键盘快捷键
  3. 在代码中,您现在可以通过SendKeys.SendWait function

发送此键

希望这能帮助到别人。问候你,约尔格

代码:

代码语言:javascript
运行
复制
    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"));
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2008359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档