我在配置功能区时遇到了一些问题。
- 只有宏作为
onAction
或getPressed
属性工作。标准模块中的功能不起作用。用标准模块编写的回调也不起作用。 - 如何在 VBA 函数中使用编辑框的值?
这是我的功能区的 xml,例如:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="true">
<tabs>
<tab idMso="TabHome">
<group idMso="GroupFont" visible="false" />
</tab>
<tab id="CustomTab" label="Клиенты">
<group id="PeopleGroup" label="Люди">
<toggleButton id="ToggleButton1" size="large" label="Все люди"
onAction="Pplopenmacro" imageMso="ContactPictureMenu"/>
<editBox id="PeopleEditBox"
label="Поиск по рег№"
onChange="MyEditBoxCallbackOnChange" />
<button id="Button3" label="TEST"
size="normal" onAction="=Person_choose()" />
</group>
<group id="CompaniesGroup" label="Компании">
<toggleButton id="ToggleButton2" size="large"
label="Компании"
onAction="Cmpnopenmacro" imageMso="MeetingsWorkspace" />
</group>
</tab>
<tab id="CustomTab2" label="Документы">
<group id="MyGroup" label="Документы" >
<button id="Button1" label="Счета"
size="large" onAction="Invoiceopenmacro"
imageMso="BusinessFormWizard" />
<button id="Button2" label="Хуета" size="normal" />
</group >
</tab>
</tabs>
</ribbon>
</customUI>
这些是我在 std 模块中的功能:
Public Sub MyEditBoxCallbackgetText(control As IRibbonControl, ByRef strText)
' Callback EditBox
' Select Case control.Id
' Case "PeopleEditBox"
' strText = "Hello World"
' End Select
MsgBox "1"
End Sub
Public Sub MyEditBoxCallbackOnChange(control As IRibbonControl, strText As String)
' Callback Editbox: Returnvalue Editbox
' Select Case control.Id
' Case "PeopleEditBox"
' MsgBox "Value Editbox: " & _
' strText, vbInformation, "Sample EditBox"
' End Select
MsgBox "2"
End Sub
Public Sub Person_choose()
'DoCmd.openForm "People", acNormal
MsgBox "Yahoo!"
End Sub