Ich benötige eine Funktion ähnlich der beim Spiel "Minesweeper", die automatisch alle benachbarten Felder aufdeckt, wenn an das betreffende Feld keine Mine grenzt. Sofern an das benachbarte Feld ebenfalls keine Mine grenzt, werden wiederum alle benachbarten Felder aufgedeckt usw. Also rekursiv. Damit durch die Offsets allerdings keine Endlosschleife entsteht, übergebe ich der Funktion auch noch die Ursprungszelle als Bedingung mit.
hier der Code:
Public
Sub OpenCell(ByVal Cell As Range, ByVal Origin As Range)
Dim i As Integer, j As Integer
Cell.Font.Color = RGB(0, 255, 0)
If Intersect(Cell, Range("B2:K11")) Is Nothing Then
ElseIf Cell.Value = 0 Then
For i = -1 To 1
For j = -1 To 1
If i = 0 And j = 0 Then
Else
If Cell.Offset(i, j) Is Not Origin Then '*
Call OpenCell(Cell.Offset(i, j), Cell)
End If
End If
Next j
Next i
End If
End Sub
* Hier gibt's einen Fehler (Laufzeitfehler 424: Objekt erforderlich.). Es soll geprüft werden, ob die Zelle, die in dem Offset abgefragt wird, gleich der Zelle ist, von wo aus die aktuelle Zelle der Offset war (ich hoffe, ich drücke mich einigermaßen verständlich aus). Wenn das so ist, soll für diese Zelle die Funktion nicht nochmal aufgerufen werden.
Wäre schön, wenn Ihr Vorschläge zur Lösung des Problems hättet.
Vielen Dank schonmal.
Gruß Mario