Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1752to1756
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Tastenabfrage mit If

VBA Tastenabfrage mit If
21.04.2020 08:16:05
Sirius11196
Hallo,
Ich muss derzeit für mein Studium in Informatik ein Spiel in VBA programmieren.
Bis jetzt läuft alles ganz gut. Ich steh nur vor einen Problem.
Ich möchte gerne das ich an einen Punkt komme, wo Vba eine Sekunde wartet bis ich die Pfeiltaste nach links oder nach rechts gedrückt habe. Wenn Links, mache das. Falls Rechts mache das.
Während das Programm läuft mach ich nichts anderes( bin im Spiel). Und auf den Tabellenblatt.
Falls in dieser Sekunde keine Taste gedrückt wurde.
Fahre mit der Prozedur fort.
Würde mich über antworten wirklich freuen :).

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Tastenabfrage mit If
21.04.2020 09:01:18
Nepumuk
Hallo,
so?
Option Explicit

Private Declare PtrSafe Function GetAsyncKeyState Lib "user32.dll" ( _
    ByVal vKey As Long) As Integer
Private Declare PtrSafe Sub Sleep Lib "kernel32.dll" ( _
    ByVal dwMilliseconds As Long)

Public Sub Test()
    Dim lngIndex As Long, lngKey As Long
    For lngIndex = 1 To 10
        Call Sleep(100)
        DoEvents
        If GetAsyncKeyState(vbKeyLeft) = -32768 Then
            lngKey = 1
            Exit For
        End If
        If GetAsyncKeyState(vbKeyRight) = -32768 Then
            lngKey = 2
            Exit For
        End If
    Next
    If lngKey = 1 Then
        Call MsgBox("Dies")
    ElseIf lngKey = 2 Then
        Call MsgBox("Das")
    End If
    
End Sub

Gruß
Nepumuk
Anzeige
AW: VBA Tastenabfrage mit If
21.04.2020 09:16:03
Sirius11196
Vielen Dank für die schnelle Antwort.
Ich glaube das es das ist und es richtig funktiniert. Aber ich verstehe den Code noch nicht ganz.
gerade dieser abschnitt lässt mir Fragezeichen über den Kopf erscheinen. Es tut mir leid aber ich hatte ein Semester Vba und bin jetzt kein Profi darin.
Private Declare PtrSafe Function GetAsyncKeyState Lib "user32.dll" ( _
ByVal vKey As Long) As Integer
Private Declare PtrSafe Sub Sleep Lib "kernel32.dll" ( _
ByVal dwMilliseconds As Long)
Hauptsächlich das mit User32.dll und kernel ...
AW: VBA Tastenabfrage mit If
21.04.2020 09:28:05
Nepumuk
Hallo,
user32.dll und kernel32.dll sind Funktionsbibliotheken (DLL = Dynamic Link Library) auf die du per VBA zugreifen kannst. Mit dem Declare-Statement importierst du die angegebenen Funktionen / Sub's aus der DLL. Das Ganze nennt sich auch API-funktionen (API = Application Program Interface)
Gruß
Nepumuk
Anzeige
AW: VBA Tastenabfrage mit If
21.04.2020 09:58:40
Sirius11196
Dann bedanke ich mich :).
Das ist wirklich das beste Excel Forum ! :)
Danke
AW: VBA Tastenabfrage mit If
21.04.2020 10:45:19
Sirius11196
Dann bedanke ich mich :).
Das ist wirklich das beste Excel Forum ! :)
Danke

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige