Excel 2010功能区调用宏

时间:2015-06-09 12:16:46

标签: excel-vba excel-2010 ribbon vba excel

我有一个Excel AddIn(.xlam文件),其中包含一些宏,我的attemt位于自定义功能区选项卡上。宏按预期工作,但现在我正在尝试制作一个功能区,以便让用户更友好。我有功能区和一个工作按钮,还有一个我无法弄清楚的下拉菜单。我不确定宏参数需要什么。以下是我到目前为止的情况。

功能区的XML(Works!):

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
  <ribbon>
    <tabs>
      <tab id="My_Tab" label="My Tab">
        <group id="NC_Material" label="Button1">
          <button id="Button1" label="1st button" size="large" onAction="Module1.Button1Click" imageMso="ResultsPaneStartFindAndReplace" />
          <dropDown id="DropDown" onAction="Module1.DropDownAction">
            <item id="ddmItem1" label="Item1" />
            <item id="ddmItem2" label="Item2" />
          </dropDown>
        </group >
      </tab>
    </tabs>
  </ribbon>
</customUI>

.xlam文件VBA项目的模块1中的VBA:

'this one works
Public Sub Button1Click(ByVal control As IRibbonControl)
    call Button1Macro
End Sub

'this one does not work
Public Sub DropDownAction(ByVal control As IRibbonControl)
    call DropDownMacro
End Sub

当我更改功能区中下拉菜单的值时,我收到错误。我不知道下拉菜单的onAction宏需要什么参数。我一直无法找到一个好的参考或例子。

我无法使用Visual Studio执行此操作,无法下载任何实用程序或其他程序。

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果你想保存自己的理智,你可以使用Andy Pope's Ribbon Editor自动生成回调(至少是他们的文字)。然后,您只需将它们复制到VBA模块中。 (我不隶属于该加载项,我只是使用它并高度推荐它)

使用该工具,我在onAction

中获得Dropdown的以下内容
Public Sub DropDownAction(control as IRibbonControl, id as String, index as Integer)
'
' Code for onAction callback. Ribbon control dropDown
'

End Sub

工作代码也会显示in this answer,这是我搜索的顶部。