So ändern Sie das Control-Y-Verhalten in der IDE von Excel-VBA

8

Die IDE von Excel VBA registriert ein Control-y als "Diese Codezeile ausschneiden".

Im Gegensatz dazu wird das Wiederherstellen von Alt-e, R durchgeführt.

Gibt es eine Möglichkeit, dieses Verhalten zu ändern und Control-y zum häufigeren Wiederherstellen zu machen?

(Weitere Informationen zum Standardverhalten finden Sie hier: http://www.pcreview.co.uk/threads/ctrl-y-in-vba-ide.2198613/ )

Eliyahu
quelle
Nicht wirklich. Möglicherweise können Sie Software von Drittanbietern verwenden, um einen neuen Hotkey zu erstellen
Eric F,
Application.OnkeyMethode wird dies für die Anwendung tun, aber ich glaube nicht, dass es für den Editor funktioniert ..
Raystafarian
Siehe auch
Eliyahu
@ Gibberish: Was ist falsch an der Antwort unten?
Harrymc
Ich suche nach einer kanonischen / maßgeblichen Antwort darauf, ob im Excel / VBA-Objektmodell ALLES möglich ist. Zum Beispiel gibt es ein Excel VBE-Objektmodell und ich frage mich, ob die VBE direkt programmiert werden kann, um dieses Problem zu lösen. (Ich bin offen für die maßgebliche Antwort, die Sie von hier aus nicht erreichen können - wenn dies tatsächlich die maßgebliche Antwort ist)
cssyphus

Antworten:

2

Dieses Autohotkey- Skript, das ich geschrieben habe, scheint zu funktionieren:

#IfWinActive ahk_class wndclass_desked_gsk

^y::
Send {escape}
Send !e;
Send r
Send {escape}
Send {escape}
return

#IfWinActive
Eliyahu
quelle
Es funktioniert für mich, aber ich sehe ein blinkendes Kontextmenü für den Bruchteil einer Sekunde oder so, wenn ich STRG + Y drücke ... Ist dies das erwartete Verhalten? Kann ich es irgendwie vermeiden?
Pere
@Pere Das Skript repliziert "Alt-e, r", so dass ich nicht denke, dass es vermieden werden kann
Eliyahu
Ja, das ist mir aufgefallen, nachdem ich den Code überprüft und gelernt habe, wie Autohotkey funktioniert. Vielen Dank für die Erklärung, @Eliyahu
Pere
@Eliyahu wo legst du dieses Skript bitte hin ??? Ich möchte auch Ctrl_Y neu auf ShiftCtrl_X abbilden, wo es an erster Stelle stehen sollte: - / Obwohl es großartig ist, dass Ctrl_Z oder Ctrl_V es rückgängig machen, zerstört es immer noch den Rückgängig-Stapel
Piecevcake
2

Als Antwort auf die Frage:

Ich frage mich, ob der VBE direkt programmiert werden kann, um dieses Problem zu lösen.

Die Antwort ist leider negativ. Die einzige Möglichkeit, das Verhalten zu ändern, besteht in der Verwendung von Add-Ins, deren Funktionen von Microsoft wie folgt zusammengefasst werden:

  • Ein Startmodul zum Abfangen des Öffnens und Schließens des Add-Ins.
  • Code zum Hinzufügen unserer Menüelemente zu den Befehlsleisten beim Öffnen und Entfernen beim Schließen
  • Für die VBE eine Klassenmosule zur Behandlung der Menüpunkte "Klick" -Ereignisse
  • Code, um die Aktionen Ihres Menüs auszuführen.

Insbesondere ist das Abfangen von Hotkeys nicht in der Liste enthalten.

Die Antwort von Eliyahu ist dann immer noch richtig und AutoHotKey (oder AutoIt) ist immer noch die einzige Lösung.

harrymc
quelle
Danke @harrymc - Ich bin froh, dass Sie zurückgekehrt sind, um dies als Antwort hinzuzufügen, da es meine Anfrage beantwortet hat.
Cssyphus
0

Die IDE von Excel VBA registriert ein Control-y als "Diese Codezeile ausschneiden".

Im Gegensatz dazu wird das Wiederherstellen von Alt-e, R durchgeführt.

Darren_Stanley
quelle