VBA - Wie einen Short Key global für alle Nutzer anwendbar einstellen?
Guten Morgen,
ich habe eine logische Abfolge von Schritten implementieren können welche auf VBA basieren.
Dabei ist der hier erste relevante Schritt wie folgt. Die anderen Schritte erfolgen über Buttons die in dem Arbeitsblatt selbst als Code geschrieben sind, also lokal.
Für den Anwendungsfall 1. müsste ich meines Verständnisses nach ein Modul nutzen um es global, für jeden aktiv zu schalten oder?
1. Erstelle aus einem Download welcher nicht immer gleich vom Dateninhalt ist, eine fornatierte Liste --> nutze dafür einfach strg +q bzw. strg+x. Also in VBA
Application.onkey "^x", "Tabellenstruktur'"
Das Ganze ist mit ausführenden Code als Modul gespeichert.
Jetzt fällt mir auf, dass das immer nur dann funktioniert wenn ich einmalig den Code über Alt + F11 in VBA selbst starte. Erst dann kann ich VBA schließen und den Short Key strg+q anwenden.
Ist an meinem Vorgehen etwas falsch?
1 Antwort
Ein Modul wird innerhalb einer Arbeitsmappe gespeichert. Im Modul definierst du die Funktion. Z. B.
Sub optimierer()
MsgBox "Hat geklappt!"
End Sub
Im Workbook-Open-Ereignis weist du den Shortcut zu.
Private Sub Workbook_Open()
Application.OnKey "^{+}", "optimierer"
End Sub
Willst du die Zuweisung des Shortcuts beim Öffnen von Excel vornehmen, musst du vermutlich mit AddIns arbeiten.
_____________
Du kannst auch einer Procedur einfacher einen Shortcut zuweisen, indem du ein Makro aufzeichnest.
Entwicklertools → Code → Makro aufzeichnen → Tastenkombination
Ich weiß allerdings nicht, wo Excel die Zuweisung vermerkt, bzw. wo man diese einsehen kann.
Du könntest mal schauen, ob es möglich ist, mit Excel automatisch ein Workbook zu starten, so eine Art normal.dot.
Workbookübergreifend kannst du Makros mittels Run ausführen.
Run "Mappe1!optimierer"
__________
Grundsätzlich wäre aber wie gesagt der Ansatz eher, global für alle Arbeitsmappen gültige Prozeduren über ein AddIn bereit zu stellen.
- Speicher deine Mappe als .xlam
- Entwicklertools → Add-Ins → Excel-Add-Ins → Aktivierung des Add-Ins
Du meinst Windows+R und dann Run 'Name meines Makros'?
Da das beruflicher Natur ist und das Makro von mir kommt. Damit kann ich nichts falsch machen oder?
Ich meine, dass du den Run-Befehl in VBA nutzt, um Prozeduren anderer Arbeitsmappen aufzurufen. Ein einfacher Call hat in meinen Tests nicht funktioniert.
(Wenn man das Modul exportiert, steht am Makro
Attribute Makro.VB_ProcData.VB_Invoke_Func = "b\n14"
Das sieht man aber nicht im VBA-Editor)
Danke. Heißt also man kann keinen Short Cut für alle über ein Modul zugänglich machen? Es gibt leider nicht DIE eine Mappe. Die Mappen ändern sich. Ich habe also keine Chance auf anderen Weg, dass in einer variablen Excel Mappe, ein definierter short Key für alle zugänglich ist? Private sub ist ja nur für mich ?