【发布时间】:2017-02-16 04:19:19
【问题描述】:
是否可以将文本框控件放在 Excel 的自定义工具栏中。我创建了一个显示此工具栏的加载项。我想要做的是当用户在文本框中键入时,加载项应该根据用户键入的内容调用过程或函数。
我想在 MS Excel 的 VBA 中完成。
谢谢。
【问题讨论】:
-
您使用的是什么版本的 Excel? (功能区 UI 还是命令栏?)
是否可以将文本框控件放在 Excel 的自定义工具栏中。我创建了一个显示此工具栏的加载项。我想要做的是当用户在文本框中键入时,加载项应该根据用户键入的内容调用过程或函数。
我想在 MS Excel 的 VBA 中完成。
谢谢。
【问题讨论】:
如果您使用 Excel 2007 并已实现 IRibbonExtensibility::GetCustomUI,那么您可以使用以下 XML 在您的插件 GUI 中定义一个编辑框:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="MyTab" label="My Tab">
<group id="MyGroup" label="My Group">
<editBox id="MyEditBox" getText="MyEditBoxCallbackgetText" label="Editbox Label" onChange="MyEditBoxCallbackOnChange"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
【讨论】:
我发现:
Sub test()
Set myControl = CommandBars("Test").Controls.Add(Type:=msoControlEdit, Before:=1)
With myControl
.Caption = "Search"
.OnAction = "Tester"
End With
End Sub
Sub Tester()
MsgBox "I am gonna search for: " & CommandBars("Test").Controls(1).Text
CommandBars("Test").Controls(1).Text = ""
End Sub
【讨论】: