VSTO为自定义功能区/组添加内置功能

时间:2018-03-20 15:42:31

标签: excel function vsto

我搜索了这个并且只能找到反向(即将自定义函数添加到现有的功能区选项卡/组)。

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

如何将这些内置按钮添加到自定义标签/组?

我在VS 2017上,到目前为止,我的方法一直在使用可视化设计器添加控件,然后点击“查看代码”选项来编写功能。

1 个答案:

答案 0 :(得分:1)

您无法在功能区设计器中添加内置控件。您可以做的最好的事情是在自定义按钮的事件处理程序中调用要使用的Excel功能。

如果将功能区导出到XML,则可以使用功能区XML定义中的本机Office控件,方法是将控件ID值分配给控件的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