Текстовое поле в пользовательской панели инструментов - PullRequest
4 голосов
/ 17 апреля 2009

Можно ли поместить текстовое поле управления на пользовательскую панель инструментов в Excel. Я создал надстройку, которая показывает эту панель инструментов. То, что я хочу сделать, это когда пользовательские типы в надстройке текстового поля должны вызывать процедуру или функцию в зависимости от того, что пользователь ввел.

Я хотел бы сделать это в VBA в MS Excel.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 17 апреля 2009

Если вы используете Excel 2007 и внедрили IRibbonExtensibility :: GetCustomUI, то вы можете использовать следующий XML для определения поля редактирования в вашем графическом интерфейсе Addin:

<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>
1 голос
/ 24 апреля 2009

Я узнал:

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
...