2009-06-24 4 views

Antwort

2

Sie möchten die CommandBars Sammlung verwenden, die für die Kontextmenüs zusätzlich zu den Symbolleisten verwendet wird. Es gibt mindestens drei Kontextmenüs - Zelle (Rechtsklick auf eine beliebige Zelle), Zeile und Spalte (Rechtsklick auf die A-, B-, C- oder 1, 2, 3-Header). Sehr einfacher Code zum Hinzufügen eines neuen Elements zum Zeilenkontextmenü ist unten.

Siehe auch die MSDN documentation for CommandBars, und es gibt eine old Office 2000 list of commandbar elements.

Sub AddToContextMenu() 
    Dim element As CommandBarButton 
    Set element = CommandBars("row").Controls.Add 
    element.Caption = "Menu Item Name" 
    element.OnAction = "VBAToRunOnRow" 
End Sub 
+0

Wie bereits erwähnt, funktioniert dies nicht für CommandBars ("Shapes") –

0

Ich weiß, dass du nicht für eine C# Lösung zu fragen, aber ich dachte, es nützlich sein, würde eine zu schreiben, da ich es gerade arbeitete von aus Alistair Antwort:

public void AddContextMenuItem(Microsoft.Office.Interop.Excel.Application application, string label) 
{ 
    var button = (CommandBarButton)application.CommandBars["cell"].Controls.Add(); 
    button.Caption = label; 
    button.Click += button_Click; 
} 

void button_Click(CommandBarButton Ctrl, ref bool CancelDefault) 
{ 
    //Button click 
} 
+0

Wie bereits erwähnt, funktioniert dies nicht für CommandBars ("Shapes") –

5

Das ist ziemlich spät , aber ich dachte, es ist wichtig für jeden anderen, der das versucht.

In Excel 2007 und 2010 können Sie die Kontextmenüs für Diagramme und Formen nicht ändern. Es gibt keine Fehler, aber die Änderungen werden nicht angewendet. Microsoft weiß darüber Bescheid, zumindest die schlauen Leute in der Produktgruppe, aber ich glaube, dass es für diese Versionen nichts geplant hat, um dieses Problem anzugehen.

Verwandte Themen