2009-04-16 4 views
3

Ist es möglich, Textfeldsteuerelement in benutzerdefinierte Symbolleiste in Excel zu platzieren. Ich habe ein Add-In erstellt, das diese Symbolleiste anzeigt. Was ich tun möchte, ist, wenn Benutzer im Textbox-Add-In eine Prozedur oder Funktion aufrufen, je nachdem, was der Benutzer eingegeben hat.Textfeld in benutzerdefinierte Symbolleiste

Ich möchte es in VBA in MS Excel tun.

Danke.

+0

Welche Version von Excel verwenden Sie? (Ribbon UI oder Command Bars?) – RedBlueThing

+0

Ich benutze Excel 2003 – THEn

Antwort

0

ich herausgefunden habe:

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

Wenn Sie mit Excel 2007 und haben IRibbonExtensibility implementiert :: GetCustomUI dann können Sie das folgende XML verwenden, um ein Bearbeitungsfeld in Ihrem Addin GUI zu definieren:

<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

Das sieht gut aus. Ich sollte über einen Upgrade auf 2007 nachdenken. Danke. – THEn

+0

Wenn ich eine Chance bekomme, kann ich Ihnen den Code für 2003 geben, der gerade aus der Tür geht;) – RedBlueThing

+0

Danke das wäre toll. – THEn