case Problem

DerStauner

Erfahrenes Mitglied
Hallo!

beim folgenden Code bekomme ich immer den Fehler "Case without Select Case" bei Case vbKeyRight, obwohl ich glaube, die Struktur ist fehlerfrei:

Code:
Public Sub MoveLeeresFeld(richtung As KeyCodeConstants)
'vorerst wird berechnet, wie die aktuelle Zahl in ihre Position
'bewegt werden muss (z. B. zweimal nach oben, und einmal nach
'rechts). Danach wird diese Methode aufgerufen (mit der entsprechenden
'Richtung). Diese Methode regelt, wie das leere Feld - im Verhältnis zu
'der Position der akt. Zahl - bewegt werden muss, um anschliessend die akt. Zahl
'in die gewünschte Richtung zu bewegen.
'z. B. wenn das leere Feld rechts von der akt. Zahl steht, und diese muss nach links
'bewegt werden, und die akt. Zahl ist zugleich in der ersten Reihe, muss das leere Feld
'um die akt. Zahl herum bewegt werden.
Select Case richtung
Case vbKeyUp:
 'leeres Feld steht von rechts
 If APX - LPX = -1 And APY = LPY Then
  MoveZahlFeld (vbKeyDown)
  MoveZahlFeld (vbKeyRight)
  MoveZahlFeld (vbKeyUp)
 End If
 'leeres Feld steht von links
 If APX - LPX = 1 And APY = LPY Then
  MoveZahlFeld (vbKeyDown)
  MoveZahlFeld (vbKeyLeft)
  MoveZahlFeld (vbKeyUp)
 End If
 'leeres Feld steht von oben
 If APY - LPY = 1 Then MoveZahlFeld (vbKeyUp)
 'leeres Feld steht von unten
 If APY - LPY = -1 Then
  If APX = 1 Then
   MoveZahlFeld (vbKeyLeft)
   MoveZahlFeld (vbKeyDown)
   MoveZahlFeld (vbKeyDown)
   MoveZahlFeld (vbKeyRight)
   MoveZahlFeld (vbKeyUp)
  End If
  If APX > 1 Then
   MoveZahlFeld (vbKeyRight)
   MoveZahlFeld (vbKeyDown)
   MoveZahlFeld (vbKeyDown)
   MoveZahlFeld (vbKeyLeft)
   MoveZahlFeld (vbKeyUp)
  End If
 End If
Case vbKeyDown:
 If APX - LPX = -1 And APY = LPY Then
  MoveZahlFeld (vbKeyUp)
  MoveZahlFeld (vbKeyRight)
  MoveZahlFeld (vbKeyDown)
 End If
 If APX - LPX = 1 And APY = LPY Then
  MoveZahlFeld (vbKeyUp)
  MoveZahlFeld (vbKeyLeft)
  MoveZahlFeld (vbKeyDown)
 End If
 If APY - LPY = 1 Then
  If APX = 1 Then
   MoveZahlFeld (vbKeyLeft)
   MoveZahlFeld (vbKeyUp)
   MoveZahlFeld (vbKeyUp)
   MoveZahlFeld (vbKeyRight)
   MoveZahlFeld (vbKeyDown)
  End If
  If APX > 1 Then
   MoveZahlFeld (vbKeyRight)
   MoveZahlFeld (vbKeyUp)
   MoveZahlFeld (vbKeyUp)
   MoveZahlFeld (vbKeyLeft)
   MoveZahlFeld (vbKeyDown)
  End If
 If APY - LPY = -1 Then MoveZahlFeld (vbKeyDown)
Case vbKeyRight:
 If APX - LPX = -1 And APY = LPY Then MoveZahlFeld (vbKeyRight)
 If APX - LPX = 1 And APY = LPY Then
  If APY = 1 Then
   MoveZahlFeld (vbKeyUp)
   MoveZahlFeld (vbKeyLeft)
   MoveZahlFeld (vbKeyLeft)
   MoveZahlFeld (vbKeyDown)
   MoveZahlFeld (vbKeyRight)
  End If
  If APY > 1 Then
   MoveZahlFeld (vbKeyDown)
   MoveZahlFeld (vbKeyLeft)
   MoveZahlFeld (vbKeyLeft)
   MoveZahlFeld (vbKeyUp)
   MoveZahlFeld (vbKeyRight)
  End If
 If APY - LPY = 1 Then
  MoveZahlFeld (vbKeyLeft)
  MoveZahlFeld (vbKeyUp)
  MoveZahlFeld (vbKeyRight)
 End If
 If APY - LPY = -1 Then
  MoveZahlFeld (vbKeyLeft)
  MoveZahlFeld (vbKeyDown)
  MoveZahlFeld (vbKeyRight)
 End If
Case vbKeyLeft:
 If APX - LPX = -1 And APY = LPY Then
  If APY = 1 Then
   MoveZahlFeld (vbKeyUp)
   MoveZahlFeld (vbKeyRight)
   MoveZahlFeld (vbKeyRight)
   MoveZahlFeld (vbKeyDown)
   MoveZahlFeld (vbKeyLeft)
  End If
  If APY > 1 Then
   MoveZahlFeld (vbKeyDown)
   MoveZahlFeld (vbKeyRight)
   MoveZahlFeld (vbKeyRight)
   MoveZahlFeld (vbKeyUp)
   MoveZahlFeld (vbKeyLeft)
  End If
 If APX - LPX = 1 And APY = LPY Then MoveZahlFeld (vbKeyLeft)
 If APY - LPY = 1 Then
  MoveZahlFeld (vbKeyRight)
  MoveZahlFeld (vbKeyUp)
  MoveZahlFeld (vbKeyLeft)
 End If
 If APY - LPY = -1 Then
  MoveZahlFeld (vbKeyRight)
  MoveZahlFeld (vbKeyDown)
  MoveZahlFeld (vbKeyLeft)
 End If
End Select
End Sub
 
Zurück