VSTO 向自定义添加内置函数 ribbon/group

VSTO add built-in function to custom ribbon/group

我已经搜索过了,但只能找到相反的方向(即向现有功能区添加自定义功能 tab/group)。

我们有一个自定义功能区,我们想要添加一些内置功能,例如我们有一些自定义数字格式按钮,除此之外,我想添加常规的内置 increase/decrease 小数位按钮,这样用户就不必 return 到“主页”选项卡来更改小数位.

如何将这些内置按钮添加到我的自定义 tab/group?

我使用的是 VS 2017,到目前为止,我的方法一直是使用可视化设计器添加控件,然后单击 'view code' 选项来编写功能代码。

您不能在功能区设计器中添加 built-in 控件。最好的办法是从自定义按钮的事件处理程序中调用要使用的 Excel 功能。

如果将功能区导出到 XML,您 可以 通过将控件 ID 值分配给控件的 XML 功能区定义中的本机 Office 控件idMso 属性。请注意,控件类型必须相同(例如,不能使用下拉菜单代替切换按钮)。

这是显示您询问的两个按钮的元素的最小功能区 XML:

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
  <ribbon>
    <tabs>
      <tab idMso="TabAddIns">
        <group id="MyGroup"
               label="My Group">
          <button idMso ="DecimalsIncrease"/>
          <button idMso ="DecimalsDecrease"/>
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

根据您的目标 Office 版本,您可以下载各种 Office 应用程序的控件 ID 文件。下载是一个 exe 文件,可解压缩为 30 多个 Excel 文件,其中列出了所有(好吧,大部分)控件 ID。以下是当前版本 Office 的下载链接:

Office 2010

Office 2013

Office 2016

Office 2007