ganz kurze frage. was ist die nummer für strg und v die ich bei getkeystate in die klammern einsetzen muß.
GetKeyState(?)
gruß
alex
Sub test
If GetKeyState(?) And GetKeyState(?)
Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Sub ausschneiden()
Selection.Copy
Do
If (GetAsyncKeyState(vbKeyControl) And &H8000) = &H8000 And _
(GetAsyncKeyState(vbKeyV) And &H8000) = &H8000 Then
Call inh_einfg
Exit Do
End If
Loop
Selection.ClearContents
End Sub
Um die Tasten Strg und V mit der Funktion GetKeyState
in Excel VBA abzufragen, gehst du wie folgt vor:
Deklariere die Funktion: Füge diese Funktion am Anfang deines Moduls ein.
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Verwende die Funktion: Um den Status der Tasten abzufragen, kannst du den folgenden VBA-Code nutzen:
Sub CheckKeys()
If (GetAsyncKeyState(vbKeyControl) And &H8000) = &H8000 And _
(GetAsyncKeyState(vbKeyV) And &H8000) = &H8000 Then
MsgBox "Strg + V wurde gedrückt!"
End If
End Sub
Führe die Prozedur aus: Du kannst die Prozedur CheckKeys
in einer Schleife oder einem Timer aufrufen, um die Tastenüberwachung durchzuführen.
Fehler: Die Schleife blockiert Eingaben.
Wenn du eine Endlosschleife verwendest, kann das zu einer Blockierung der Benutzeroberfläche führen. Stattdessen nutze die OnKey
-Methode:
Application.OnKey "^v", "Deine_Prozedur"
Fehler: Tasten werden nicht erkannt.
Stelle sicher, dass du die richtigen Tastencodes verwendest. Für Strg ist es vbKeyControl
und für V ist es vbKeyV
.
Eine alternative Möglichkeit, Strg und V in Excel VBA zu überwachen, ist die Verwendung von GetAsyncKeyState
. Diese Methode erlaubt es, den Status der Tasten auch während der Ausführung eines Makros zu prüfen.
Beispiel:
If (GetAsyncKeyState(vbKeyControl) And &H8000) = &H8000 Then
' Deine Logik hier
End If
Hier ist ein einfaches Beispiel, das Strg + V abfängt und eine Nachricht anzeigt, wenn die Kombination gedrückt wird:
Sub MonitorKeys()
Do
If (GetAsyncKeyState(vbKeyControl) And &H8000) = &H8000 And _
(GetAsyncKeyState(vbKeyV) And &H8000) = &H8000 Then
MsgBox "Strg + V erkannt!"
Exit Do
End If
DoEvents ' Erlaube anderen Prozessen, zu laufen
Loop
End Sub
DoEvents
: Wenn du eine Schleife verwendest, füge DoEvents
ein, um sicherzustellen, dass Excel weiterhin reagiert.OnKey
-Methode die beste Wahl, da sie eine einfache Möglichkeit bietet, benutzerdefinierte Prozeduren für bestimmte Tasteneingaben zu definieren.1. Wie finde ich die richtigen Keycodes für andere Tasten?
Du kannst eine Liste der Tastencodes in der VBA-Dokumentation finden oder online nach "VBA Key Codes" suchen.
2. Ist GetKeyState
in allen Excel-Versionen verfügbar?
Ja, GetKeyState
ist in allen Versionen von Excel VBA verfügbar, die die Windows API unterstützen.
3. Wie kann ich die Tastenüberwachung beenden?
Du kannst eine Bedingung in deiner Schleife einfügen, die das Programm beendet, wenn eine bestimmte Taste gedrückt wird, z.B. die Escape-Taste.
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