2

我已经使用 SetCustomUI VBA 方法在 MS Project 2010 的功能区中添加了一个选项卡,详情如下:http: //msdn.microsoft.com/en-us/library/ee767705

选项卡 XML 加载正常,布局设置正确。问题是在执行与我的按钮和编辑框关联的 VBA 回调时,Project 似乎没有使用此处定义的标准方法签名:http: //msdn.microsoft.com/en-us/library/aa722523.aspx#a16c7df5 -93f3-4920-baa8-7b7290794c15_Ribbon

这些签名在 Excel 2010 等“更标准”的 Office 程序中工作,但是当我在 Project 中编写具有相同参数的方法时,除非我从方法中删除所有参数,否则会弹出异常。这对于按钮(在第一篇 MSDN 文章中进行了演示)是可以的,但是对于 editBoxes 的“onChange”回调,在回调中没有提供任何参数,我无法读取在 editBox 中输入的文本,使得他们没用。应该如何在 Project 中访问功能区编辑框的内容?项目中是否忽略了对该字符串的 VBA 访问?只能通过托管代码访问吗?

这是我尝试过的 XML / VBA 对的示例:

<customUI  xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon >
        <tabs >
            <tab 
                id="NavHelper"
                label="Nav Helper">
                <group 
                    id="Group1"
                    label="Search">
                    <box  id="Box1" >
                        <editBox 
                            id="DateBegin"
                            label="Dates from"
                            sizeString="11/11/1111"
                            onChange="DateBegin_onChange"/>
                        <editBox 
                            id="DateEnd"
                            label="to"
                            sizeString="11/11/1111"
                            onChange="DateEnd_onChange"/>
                    </box >
                    <button 
                        id="doSearch"
                        imageMso="InstantSearch"
                        label="Search"
                        size="large"
                        onAction="doSearch_onAction"/>
                </group >

            </tab >
        </tabs >
    </ribbon >
</customUI >

和 VBA:

Public Sub DateBegin_onChange(control As IRibbonControl, text As String)
    MsgBox text
End Sub

Public Sub doSearch_onAction(control As IRibbonControl)
    MsgBox "pressed!"
End Sub

因此,对于这个示例,该设置在 Excel 中完美运行,但如果我将它带到 Project 中,除非我从方法定义中删除所有参数,否则回调将不会运行,此时它们运行,但无用。有任何想法吗?

4

1 回答 1

1

您是否尝试过 Microsoft Office 的自定义 UI 编辑器?

请参阅http://openxmldeveloper.org/blog/b/openxmldeveloper/archive/2009/08/06/7293.aspx

我没有在 MS Project 中工作过,但在其他办公程序中,您可以输入 customUI XML 并对其进行验证,并获得相应的 VBA 函数签名。

如果我在 Excel 中尝试您的 customUI XML 并尝试验证(我没有 Project...),我会收到一条错误消息,指出命名空间错误。

于 2012-08-06T13:43:15.710 回答