Excel插件的自定义功能区选项卡无法显示

6
我已创建了一个Excel应用级插件来自动化一些任务。我使用了VS2012模板Visual C#> Office> 2010> Excel 2010 Add-In。
与其让每次Excel打开时都有一个操作窗格,我选择按照以下说明创建自定义功能区选项卡:

http://msdn.microsoft.com/en-us/library/vstudio/bb386104.aspx

然而,当我构建我的项目时,选项卡没有显示。我已经验证了加载项正在加载,并且所有功能都能正常运行,除了选项卡。我创建了一个简单的表格来测试这个问题,它按预期加载。
然后我尝试创建一个Excel 2010工作簿项目。在添加选项卡(使用与之前相同的步骤)并构建项目后,它完全有效;选项卡选项卡按预期出现。
我尝试覆盖ThisAddIn.CreateRibbonExtensibilityObject()来返回我的选项卡对象,通过Globals.Factory.GetRibbonFactory().CreateRibbonManager创建。但是,仍然不起作用。
我现在很困惑。

3
我可以建议您尝试创建一个全新的Add-In项目(就像您为Workbook项目所做的那样),添加一个Ribbon并查看是否有效(在VS2010中肯定有效,因为我已经做过很多次)。当使用Add-Ins时有许多琐碎的设置,您可能会在不知情的情况下调整其中一个设置,从而导致无法正确加载Ribbon。 - steveo40
成功了...哈。不过真是太麻烦了...真希望我能找出导致这个问题的原因。 - Michael
1
是的,我有几次遇到了一些问题,现在我已经认识到 Visual Studio 是如此复杂,以至于有时候创建一个新项目并将所有内容复制过去会更容易一些... - steveo40
今天我遇到了类似的问题,这个链接可能值得一看。 - NAJ
3
在较新版本的Excel中(在“文件”->“选项”->“高级”下,通用部分),有一个名为“显示加载项用户界面错误”的选项非常有用。 - Govert
5个回答

11

我也遇到了这个问题,我的VSTO功能区无法显示。

以下是我的解决方案,使用的是Excel 2013和VS2015。

您需要做的是:

  • 打开功能区设计器窗口
  • 选择 RibbonTab 对象
  • 在“属性”窗口中,展开“ControlId”分支,并将 ControlIdType 从“Office”改为“Custom

enter image description here

荒谬吧?但是,奇怪的是,它确实有效...


1
可能有点奇怪..MSDN也是这么说的 :) https://msdn.microsoft.com/zh-cn/library/bb386104.aspx。否则,功能区将显示在内置的“ADD-IN”功能区组下。由于我们需要标签,所以需要进行此更改。 - sura2k
1
同样地,如果您使用RibbonXML,则应该将id属性添加到您的<tab>中并删除msoId属性。 - Ehsan88
嗨,Mike,我们浪费了很多时间来寻找那个设置。谢谢!你知道那个设置确切存储在哪里吗?我正在尝试查看包含该设置的文本文件(以及该文件中的文本)。 - Keith Howard

3

我曾经在使用XML Ribbon开发工具时遇到过这个问题。你需要将这段代码(或类似的功能)添加到ThisAddIn.cs(或主要插件类)中。

    protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
    {
      return new Ribbon1();
    }

2
哇,经过很多挫折,这证明这就是缺失的东西!奇怪的是,我认为这是一段托管代码,所以我不知道为什么它对我来说是缺失的...谢谢! - jones-chris

2

经过一番努力,我发现RibbonGroupPosition属性必须是Default


0

我切换回了Visual Studio 2017社区版,这对我起作用了。

作为升级过程,我将我的VSTO插件从VS 2017迁移到了VS 2019。当我在VS 2019上编译我的插件时,MS Word和Outlook的社区插件运行良好,但是MS Excel没有显示插件(功能区)。

尝试了许多建议,但都没有起作用。切换回VS 2017社区版后,它开始正常工作。


0

默认选项卡的可见属性值为False,将其设置为True


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接