VBA - Wie einen Short Key global für alle Nutzer anwendbar einstellen?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

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.


Suboptimierer  27.10.2021, 08:33

(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)

0
Svenson1989 
Fragesteller
 27.10.2021, 09:52

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 ?

0
Suboptimierer  27.10.2021, 10:06
@Svenson1989

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
1
Svenson1989 
Fragesteller
 27.10.2021, 10:16
@Suboptimierer

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?

0
Suboptimierer  27.10.2021, 10:30
@Svenson1989

Ich meine, dass du den Run-Befehl in VBA nutzt, um Prozeduren anderer Arbeitsmappen aufzurufen. Ein einfacher Call hat in meinen Tests nicht funktioniert.

1