Tastaturabfrage in Excel klemmt irgendwie
28.06.2017 10:31:23
Marc
ich bastel gerade an einer einfachen Tastaturabfrage.
Die funktioniert auch soweit, aber nach ca. 30 Sekunden bekomme ich den busy-Kringel und excel faded aus.
Man kann aber immer noch die "Ende" Taste drücken und das Makro wird beendet, also läuft es noch im Hintergrund. Nur die Bildschirmausgabe ist ausgeblendet, aber genau die brauche ich permanent bei meinem Projekt.
Anbei der Code:
Option Explicit
Private Declare
Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Declare
Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Integer
Function Taste_gedrückt(Taste As Long) As Boolean
If GetAsyncKeyState(Taste) Then
Taste_gedrückt = True
Else
Taste_gedrückt = False
End If
End Function
Sub test()
Dim i As Integer
Dim Abbrechen As Boolean
Abbrechen = False
Do While Abbrechen = False
Abbrechen = Abbruch()
Sleep 100
ActiveWorkbook.Sheets(1).Cells(1, 1).Value = ""
Loop
End Sub
Function Abbruch() As Boolean
Dim b As Integer
b = 0
'Abfrage ob die Ende-Taste gedrückt wurde
If Taste_gedrückt(vbKeyEnd) Then
b = MsgBox("Möchten Sie das Makro abbrechen?", vbYesNo, "Beenden?")
If b = 6 Then
Abbruch = True
ElseIf b = 7 Then
Abbruch = False
End If
End If
If Taste_gedrückt(vbKeyLeft) Then
ActiveWorkbook.Sheets(1).Cells(1, 1).Value = "Left"
End If
If Taste_gedrückt(vbKeyRight) Then
ActiveWorkbook.Sheets(1).Cells(1, 1).Value = "Right"
End If
If Taste_gedrückt(vbKeySpace) Then
ActiveWorkbook.Sheets(1).Cells(1, 1).Value = "Space"
End If
If Taste_gedrückt(vbKeyReturn) Then
ActiveWorkbook.Sheets(1).Cells(1, 1).Value = "Enter"
End If
End Function
Hat irgendjemand eine Idee, wie ich verhindere, dass Excel die Bildschirmausgabe blockiert ?