Gibt es eine Möglichkeit, um Makros nicht nur über "Strg + Buchstabe" aufzurufen sondern auch über Funktionstasten?
Danke im vorraus,
Ralf-Eckhard
Private Sub Workbook_Activate()
'z.B. Funktionstaste umleiten auf Makro "Info"
Application.OnKey "{F1}", "Info"
End Sub
Private Sub Workbook_Deactivate()
'Funktionstaste rücksetzen
Application.OnKey "{F1}"
End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then ActiveSheet.TextBox2.Activate '"ENTER"
If KeyCode = 35 Then Call einfügen '"ENDE"
If KeyCode = vbKeyF1 Then Call START '"F1"
End Sub
Öffne den VBA-Editor: Drücke ALT + F11
, um den Visual Basic for Applications (VBA) Editor zu öffnen.
Wähle das Codemodul: Klicke im Projektfenster auf „DieseArbeitsmappe“.
Füge den Code ein: Kopiere den folgenden VBA-Code in das Modul:
Private Sub Workbook_Activate()
' Funktionstaste umleiten auf Makro "Info"
Application.OnKey "{F1}", "Info"
End Sub
Private Sub Workbook_Deactivate()
' Funktionstaste rücksetzen
Application.OnKey "{F1}"
End Sub
Makro erstellen: Erstelle ein Makro mit dem Namen „Info“, das ausgeführt werden soll, wenn die Funktionstaste F1 gedrückt wird.
Speichern und Testen: Speichere deine Änderungen und teste die Funktionstaste, indem du die Arbeitsmappe aktivierst.
Funktionstaste funktioniert nicht: Stelle sicher, dass deine Arbeitsmappe aktiviert ist und der Code im richtigen Modul eingefügt wurde.
Makro nicht gefunden: Überprüfe, ob das Makro den korrekten Namen hat und ob es im gleichen Modul wie der OnKey-Befehl definiert ist.
Rücksetzung der Funktionstaste: Wenn du die Arbeitsmappe verlässt, wird die Funktionstaste zurückgesetzt. Achte darauf, den Deactivate-Code nicht zu entfernen.
Eine andere Möglichkeit, Makros über Funktionstasten in Excel aufzurufen, ist die Verwendung von UserForms. Hier kannst du den KeyDown-Ereignis nutzen:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyF1 Then Call START ' F1
End Sub
Diese Methode ist speziell für die Verwendung innerhalb einer Textbox gedacht.
Beispiel 1: Um die Funktionstaste F2 für ein Makro „DatenAktualisieren“ zu verwenden, ändere den OnKey-Befehl entsprechend:
Application.OnKey "{F2}", "DatenAktualisieren"
Beispiel 2: Du kannst mehrere Funktionstasten für verschiedene Makros zuweisen, indem du mehrere OnKey-Befehle in deinem Code verwendest.
Benutzerdefinierte Tastenbelegung: Nutze die Möglichkeit, Funktionstasten individuell für verschiedene Arbeitsmappen zuzuweisen.
Einfache Fehlersuche: Verwende Debug.Print
innerhalb deines Makros, um zu überprüfen, ob das Makro tatsächlich aufgerufen wird.
Dokumentation: Halte deinen Code gut dokumentiert, insbesondere wenn du mehrere Funktionstasten verwendest.
1. Kann ich auch andere Tasten als Funktionstasten verwenden?
Ja, du kannst nahezu jede Taste über den Application.OnKey
Befehl umleiten.
2. Ist das nur in bestimmten Excel-Versionen möglich?
Diese Funktionalität ist in den meisten modernen Excel-Versionen verfügbar, die VBA unterstützen.
3. Was passiert, wenn ich eine Funktionstaste standardmäßig benötige?
Du kannst die Funktionstaste jederzeit auf ihre Standardfunktion zurücksetzen, indem du Application.OnKey
ohne Parameter verwendest.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen