2009-04-16 2 views
3

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

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

Спасибо.

+0

Какую версию Excel вы используете? (Ribbon UI или командные бары?) – RedBlueThing

+0

Я использую excel 2003 – THEn

ответ

0

я узнал:

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 
3

Если вы используете 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> 
+0

Это хорошо выглядит. Я должен рассмотреть возможность обновления до 2007 года. Спасибо. – THEn

+0

Когда я получаю шанс, я могу дать вам код на 2003 год, выйдя за дверь прямо сейчас;) – RedBlueThing

+0

Спасибо, что было бы здорово. – THEn