Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Frage zu "guten alten" CommandBars | Herbers Excel-Forum


Betrifft: Frage zu "guten alten" CommandBars von: Martin
Geschrieben am: 09.08.2012 19:55:07

Hallo,

ich bin (noch immer) nicht auf Excel 2007/2010 mit den Ribbons umgestiegen und habe eine Frage zu den alten CommandBars unter Excel 2000/2002/2003. Wie kann ich beim Anlegen eines eigenen ControlButtons den Shortcut rechtsbündig darstellen?



Bis Excel 97 wurden statt CommandBars das Objekt "MenuBars" verwendet. Damals hat man hinter die Bezeichnung (Caption) einfach ein "Chr(8)" und anschließend das entsprechende Shortcut gesetzt:

Sub Menue()
    With MenuBars(xlWorksheet).Menus("&Bearbeiten")
        .MenuItems.Add Caption:="&Eigenes Makro" & Chr(8) & "Strg+I", OnAction:="Makro1",   _
Before:=1
    End With
End Sub
Siehe auch: http://support.microsoft.com/KB/146863

Doch wie trotz langer Suche bei Google und verschiedensten Versuchen (wie .ShortcutKey = "Strg+I") habe ich unter CommandBars keine Lösung gefunden.

Viele Grüße

Martin

  

Betrifft: AW: Frage zu "guten alten" CommandBars von: Ramses
Geschrieben am: 09.08.2012 21:26:38

Hallo

Das musst du separat setzen

Application.MacroOptions Macro:="Makro1", Description:="Eigenes Makro", ShortcutKey:="i"

Sollte eigentlich tun

Gruss Rainer


  

Betrifft: AW: Frage zu "guten alten" CommandBars von: Martin
Geschrieben am: 09.08.2012 23:11:50

Hallo Rainer,

vielen Dank für deine schnelle Antwort, aber leider klappt es noch immer nicht:



Hier noch mein Code, vielleicht habe ich ja einen Fehler gemacht:

Option Explicit

Sub Menue()
     
    Application.MacroOptions Macro:="Makro1", Description:="Test Shortcut", ShortcutKey:="i"

    Dim cbar As CommandBarControl
    Dim ctlNew As CommandBarControl
    
    Set cbar = CommandBars(1).Controls("&Bearbeiten")
        
    Set ctlNew = cbar.Controls.Add(Type:=msoControlButton, Before:=1)
    With ctlNew
        .Caption = "&Eigenes Makro"
        .OnAction = "Makro1"
    End With
        
End Sub

Sub Makro1()
    MsgBox "Makro1"
End Sub
Hast du eine Idee, warum es nicht klappt?

Viele Grüße

Martin


  

Betrifft: "ShortcutText" ist die Lösung von: Martin
Geschrieben am: 09.08.2012 23:24:15

Hallo Rainer,

jetzt habe ich mit "ShortcutText" die Lösung doch noch gefunden:

Sub Menue()
     
    Dim cbar As CommandBarControl
    Dim ctlNew As CommandBarControl
    
    Set cbar = CommandBars(1).Controls("&Bearbeiten")
        
    Set ctlNew = cbar.Controls.Add(Type:=msoControlButton, Before:=1)
    With ctlNew
        .Caption = "&Eigenes Makro"
        .OnAction = "Makro1"
        .ShortcutText = "Strg+I"
    End With
        
End Sub
Viele Grüße

Martin


  

Betrifft: AW: Frage zu "guten alten" CommandBars von: Nepumuk
Geschrieben am: 09.08.2012 23:24:26

Hallo,

so:

Sub Menue()
    
    Dim cbar As CommandBarPopup
    Dim ctlNew As CommandBarButton
    
    Application.MacroOptions Macro:="Makro1", ShortcutKey:="i"
    
    Set cbar = CommandBars(1).Controls("&Bearbeiten")
    
    Set ctlNew = cbar.Controls.Add(Type:=msoControlButton, Before:=1, Temporary:=True)
    With ctlNew
        .Caption = "&Eigenes Makro"
        .OnAction = "Makro1"
        .ShortcutText = "Strg+I"
    End With
    
End Sub

Sub Makro1()
    MsgBox "Makro1"
End Sub

Gruß
Nepumuk


  

Betrifft: Danke von: Martin
Geschrieben am: 09.08.2012 23:32:14

Hallo Nepumuk,

vielen Dank für die schnelle und richtige Antwort. Ich hatte die Lösung (ShortcutText) bereits wenige Sekunden vor dir gepostet. Aber ich habe gesehen, dass du die Variablen spezifischer deklariert hast. Das übernehme ich!

Ich wünsche dir noch einen schönen Abend!

Viele Grüße

Martin


Beiträge aus den Excel-Beispielen zum Thema "Frage zu "guten alten" CommandBars"