Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Kontextmenü der rechten Maustaste anpassen

Kontextmenü der rechten Maustaste anpassen
11.05.2008 14:30:03
Reinhard
Hallo Wissende,
jemand wollte das Kontextmenu der rechten Maustaste ergänzen, zwar in Word, aber das spielt für meine Anfrage hier keine Rolle. Ich weiß das geht mit Controls.Add.
Ich habe da Excel-Vba Code von Michael Schwimmer, den habe ich nur leicht umgeschrieben um herauszufinden wle denn die Nummer des Kontextmenus der rechten Maustaste ist, sowohl in Word als auch in Excel um dann dort mit .Controls.Add einen Eintrag zu ergänzen.
Im Kontextmenu in Excel ist u.a. der Menupunkt "Auswahlliste" enthalten, aber wenn ich im Ergebnis des Codes nach "lliste" suche erhalte ich keinen Treffer!?
Auch beim manuellen Durchgehen der Ergebnisliste im Direkt-Fenster fand ich die Unterpunkte des rechten Mauskontextmenüs nicht.
Was mache ich da falsch?
Der Code:

Sub PopupNames()
Dim i As Integer, ii
For i = 1 To Application.CommandBars.Count
If CommandBars(i).Type = msoBarTypePopup Then
With Application.CommandBars(i)
Debug.Print i
For ii = 1 To .Controls.Count
Debug.Print .Controls(ii).Caption
Next ii
End With
End If
Next i
End Sub


Danke ^ Gruß
Reinhard

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kontextmenü der rechten Maustaste anpassen
11.05.2008 14:44:41
Nepumuk
Hallo Reinhard,
die Kontextmenüs sind dynamisch. D.h. sie ändern sich, je nachdem worauf du klickst. Um wirklich an alle Menüpunkte zu gelangen, musst du nach diesen suchen. Lass mal folgende Prozedur laufen:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Sub ID_List()
    Dim lngIndex As Long, lngRow As Long
    Dim objBar As CommandBar, objControl As CommandBarControl
    lngRow = 1
    Application.ScreenUpdating = False
    Cells.Clear
    For lngIndex = 1 To 31500
        For Each objBar In Application.CommandBars
            Set objControl = objBar.FindControl(ID:=lngIndex, Recursive:=True)
            If Not objControl Is Nothing Then
                lngRow = lngRow + 1
                Cells(lngRow, 1) = objControl.ID
                Cells(lngRow, 2) = objControl.Index
                Cells(lngRow, 3) = Replace(objControl.Caption, "&", "")
                Cells(lngRow, 4) = objControl.Type
                If objControl.Type = msoControlButton Then Cells(lngRow, 5) = objControl.FaceId
                Cells(lngRow, 6) = objBar.Name
                Cells(lngRow, 7) = objBar.NameLocal
                Cells(lngRow, 8) = objBar.Index
            End If
        Next
    Next
    With Range("A1:H1")
        .Value = Array("ID Control", "Index Control", "Caption Control", "Typ Control", _
            "FaceId Control", "In Leiste engl.", "In Leiste deutsch", "Index Leiste")
        .Font.Bold = True
        .AutoFilter
    End With
    Columns.AutoFit
    Application.ScreenUpdating = True
End Sub

Gruß
Nepumuk

Anzeige
AW: Kontextmenü der rechten Maustaste anpassen
11.05.2008 15:13:32
Reinhard
Hallo Nepumuk,
dankeschön.
Fast 3000 Treffer in der Egebnisliste. Da ich zum Glück weiß wie das Kontextmenu in Excel heisst, Cells, konnte ich danach filtern.
Ich probiere heute Abend das Ganze auf Word umzuschreiben und dann dort halt schauen wie es in Word heißen könnte, ich denke aber Google wird mir dabei helfen.
Gruß
Reinhard

Anzeige
AW: Kontextmenü der rechten Maustaste anpassen
11.05.2008 15:23:00
Nepumuk
Hallo Reinhard,
du musst aber aufpassen. Das Menü "Cell" gibt es in Excel zweimal. Wenn du nach dem Namen "Cell" filterst, schau dir den Index des Menüs in Spalte H an, daran siehst du es.
Ich kann nicht sagen, ob es in Word auch gleiche Namen für unterschiedliche Menüs gibt.
Gruß
Nepumuk

Anzeige
AW: Kontextmenü der rechten Maustaste anpassen
11.05.2008 17:10:41
Reinhard
Hallo Nepumuk,
ja, das fiel mir auch auf, ich habe dann nach "21" bzw. "24" in H gefiltert und irgendwie nicht unerwartet entsprach keine der Trefferreihenfolgen egal wie ich sortierte der Reinhenfolge dessen was man man sieht wenn man mit rechts in eine Zelle klickt.
Welches Bild mich in Word erwartet werde ich gleich wissen wenn ich es hinkriege den Code umzuschreiben.
PS: Thomas Ramel hat mir gesagt daß er schon mal ein Bierchen mit einem gewissen Max getrunken hat, gibts da irgendwas womit ich ihn in netter Form und sehr gerne weil ich ihn vom Posten her mag "hochnehmen" könnte? Hat er die Bedienung angefasst, lag unterm Tisch oder sowas?
Ist er Fan von irgendeinem schweizer Fußballverein?
Und, dein Wort zum Sonntag, was mich da mal sehr interessiern würde wäre ein Wort zum Sonntag zum Thema Volatile bei Funktionen, also ob man es benutzen sollte oder besser nicht um zu verhindern daß das System ausgebremst wird.
Gruß
Reinhard
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Kontextmenü der rechten Maustaste anpassen in Excel


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Neues Modul erstellen: Klicke mit der rechten Maustaste im Projektfenster auf "VBAProject (DeineDatei.xlsx)" und wähle "Einfügen" > "Modul".

  3. Code einfügen: Kopiere den folgenden Code und füge ihn in das Modul ein:

    Sub PopupNames()
        Dim i As Integer, ii
        For i = 1 To Application.CommandBars.Count
            If CommandBars(i).Type = msoBarTypePopup Then
                With Application.CommandBars(i)
                    Debug.Print i
                    For ii = 1 To .Controls.Count
                        Debug.Print .Controls(ii).Caption
                    Next ii
                End With
            End If
        Next i
    End Sub
  4. Code ausführen: Drücke F5, um den Code auszuführen. Dadurch werden die Menüpunkte des Kontextmenüs der rechten Maustaste aufgelistet.

  5. Menüpunkt hinzufügen: Verwende .Controls.Add im Code, um dem Kontextmenü einen neuen Punkt hinzuzufügen.


Häufige Fehler und Lösungen

  • Kein Menü angezeigt: Wenn du beim Rechtsklick kein Kontextmenü siehst, stelle sicher, dass du den Code korrekt ausgeführt hast. Überprüfe auch, ob das Excel-Kontextmenü überhaupt aktiviert ist.
  • Doppelte Menüpunkte: Wenn du nach einem Menüpunkt suchst und mehrere Treffer erhältst, achte auf den Index in der Ergebnisliste, um den richtigen zu identifizieren.
  • Syntaxfehler im VBA: Achte darauf, dass du den Code genau so einfügst, wie er bereitgestellt wird, um Syntaxfehler zu vermeiden.

Alternative Methoden

  • Verwendung von Excel-Add-Ins: Manchmal gibt es Add-Ins, die das Kontextmenü erweitern oder anpassen können, ohne dass du selbst VBA-Code schreiben musst. Suche im Office Store nach geeigneten Add-Ins.
  • Kontextmenü in Word anpassen: Ähnliche Schritte gelten auch für Word. Du kannst die gleichen VBA-Methoden verwenden, um das Word-Kontextmenü anzupassen.

Praktische Beispiele

  • Menüpunkt "Zellen formatieren" hinzufügen:

    Application.CommandBars("Cell").Controls.Add(Type:=msoControlButton, ID:=1, Before:=1).Caption = "Meine Formatierung"
  • Menüpunkt "Daten importieren" hinzufügen:

    Application.CommandBars("Cell").Controls.Add(Type:=msoControlButton).Caption = "Daten importieren"

Diese Beispiele zeigen, wie du spezifische Funktionen zum Excel-Kontextmenü hinzufügen kannst.


Tipps für Profis

  • Kontextmenü dynamisch anpassen: Du kannst das Kontextmenü dynamisch anpassen, je nach dem, worauf du klickst. Dies kann durch das Überwachen von Ereignissen in Excel erreicht werden.
  • Backup erstellen: Bevor du Änderungen am Kontextmenü vornimmst, erstelle ein Backup deines Excel-Dokuments, um mögliche Datenverluste zu vermeiden.
  • Regelmäßige Anpassungen: Überprüfe regelmäßig dein angepasstes Kontextmenü, um sicherzustellen, dass es weiterhin deinen Anforderungen entspricht.

FAQ: Häufige Fragen

1. Wie kann ich das Kontextmenü in Excel zurücksetzen?
Um das Excel-Kontextmenü zurückzusetzen, kannst du die Standardwerte wiederherstellen, indem du die Anpassungen im VBA-Editor entfernst.

2. Funktioniert das Anpassen des Kontextmenüs in allen Excel-Versionen?
Ja, die Anpassung des Excel-Kontextmenüs funktioniert in der Regel in den meisten aktuellen Versionen, einschließlich Excel 2016 und später.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige