Warum Minesweeper in Excel?

Erinnern Sie sich noch an die guten alten Zeiten, als Windows standardmäßig Minesweeper mitgeliefert hat? Das klassische Spiel war der perfekte Zeitvertreib für kurze Pausen und hat Millionen von Menschen durch langweilige Arbeitsmomente geholfen. Leider gehört Minesweeper nicht mehr zur Windows-Grundausstattung.

In vielen Unternehmen sind zudem Webspiele und Online-Unterhaltung durch Firewalls blockiert. Was bleibt also für eine entspannte 5-Minuten-Pause? Die Antwort ist überraschend einfach: Excel!

Mit ein paar Zeilen VBA-Code können Sie Ihr eigenes, voll funktionsfähiges Minesweeper direkt in Excel erstellen. Das Beste daran: Es funktioniert offline, wird von keiner IT-Abteilung blockiert und ist ein lustiger Zeitvertreib, der nebenbei auch noch Ihre Excel-Kenntnisse erweitert.

Schritt-für-Schritt Anleitung

Keine Sorge – auch wenn Sie noch nie mit VBA (Visual Basic for Applications) oder Makros gearbeitet haben, ist diese Anleitung für absolute Anfänger geschrieben. Folgen Sie einfach den Schritten:

1. Excel vorbereiten

  • Öffnen Sie Excel und erstellen Sie eine neue, leere Arbeitsmappe

  • Speichern Sie die Datei als „Minesweeper.xlsm“ (das .xlsm-Format ist wichtig für Makros!)

2. Visual Basic Editor öffnen

  • Drücken Sie Alt + F11 – dadurch öffnet sich der Visual Basic Editor

  • Falls das nicht funktioniert, gehen Sie über das Menü: Entwicklertools → Visual Basic

  • Tipp: Falls Sie die Entwicklertools nicht sehen, aktivieren Sie diese unter Datei → Optionen → Menüband anpassen

3. Board-Arbeitsblatt vorbereiten

  • Im Visual Basic Editor sehen Sie links im Projekt-Explorer Ihre Arbeitsmappe

  • Klicken Sie mit der rechten Maustaste auf „Tabelle1“ und wählen Sie „Code anzeigen“

  • Löschen Sie eventuell vorhandenen Code und fügen Sie folgenden Code ein:

VBA Code – Board Arbeitsblatt
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    ' Doppelklick = Aufdecken oder Restart
    Cancel = True
    On Error Resume Next
    
    If Not modMinesweeper.GameOver Then
        ' Normales Spiel: Zelle aufdecken
        Call modMinesweeper.RevealCell(Target)
    Else
        ' Spiel beendet: Restart bei Klick auf Status
        If Target.Address = Range("E4").Address Then
            If Range("E4").Value = "Verloren" Or Range("E4").Value = "Gewonnen!" Then
                Call modMinesweeper.NewGame
            End If
        End If
    End If
    
    On Error GoTo 0
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    ' Rechtsklick = Flagge setzen/entfernen
    Cancel = True
    On Error Resume Next
    
    If Not modMinesweeper.GameOver Then
        Call modMinesweeper.ToggleFlag(Target)
    End If
    
    On Error GoTo 0
End Sub

4. Arbeitsblatt umbenennen

  • Gehen Sie zurück zu Excel (Alt + F11 oder Excel-Symbol in der Taskleiste)

  • Klicken Sie mit der rechten Maustaste auf den Reiter „Tabelle1“ unten

  • Wählen Sie „Umbenennen“ und geben Sie „Board“ ein

5. Neues Modul erstellen

  • Wechseln Sie zurück zum Visual Basic Editor (Alt + F11)

  • Klicken Sie mit der rechten Maustaste in den Projekt-Explorer auf Ihr Projekt

  • Wählen Sie Einfügen → Modul

  • Es erscheint ein neues Modul (meist „Modul1“)

6. Modul umbenennen

  • Klicken Sie das neue Modul im Projekt-Explorer an

  • Unten rechts im Eigenschaften-Fenster ändern Sie den Namen von „Modul1“ in „modMinesweeper“

  • Falls Sie das Eigenschaften-Fenster nicht sehen: Drücken Sie F4

7. Hauptcode einfügen

  • Doppelklicken Sie auf das „modMinesweeper“-Modul

  • Löschen Sie eventuell vorhandenen Code und fügen Sie den kompletten Minesweeper-Code ein:

VBA Code – modMinesweeper Modul
Option Explicit

' Globale Einstellungen
Public gRows As Long, gCols As Long, gMines As Long
Public Const BOARD_SHEET As String = "Board"
Public Const SOL_SHEET As String = "Solution"
Public GameOver As Boolean
Public GameStarted As Boolean
Public CoveredCells As Long
Public FlagsPlaced As Long

' Farben und Darstellung
Private Sub StyleBoard(ws As Worksheet, topRow As Long, leftCol As Long, rows As Long, cols As Long)
With ws
.Cells.Clear
.Columns.ColumnWidth = 3
.rows.RowHeight = 18
.Range(.Cells(topRow, leftCol), .Cells(topRow + rows - 1, leftCol + cols - 1)).Interior.Color = RGB(200, 200, 200)
.Range(.Cells(topRow, leftCol), .Cells(topRow + rows - 1, leftCol + cols - 1)).Borders.LineStyle = xlContinuous
.Range(.Cells(1, 1), .Cells(5, leftCol + cols + 5)).Clear
.Range("B2").Value = "Minen:"
.Range("B3").Value = gMines
.Range("E2").Value = "Flaggen:"
.Range("E3").Value = 0
.Range("B4").Value = "Status:"
.Range("E4").Value = "aktiv"
.Range("H2").Value = "Verdeckt:"
.Range("H3").Value = rows * cols
.Range("B2:J4").Font.Bold = True
End With
End Sub

Private Sub EnsureSheets()
Dim ws As Worksheet
Dim nm As String
nm = SOL_SHEET ' "Solution"
' Board sichern/erstellen
On Error Resume Next
Set ws = ThisWorkbook.Worksheets(BOARD_SHEET)
On Error GoTo 0
If ws Is Nothing Then
    Set ws = ThisWorkbook.Worksheets.Add(After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.count))
    ws.Name = BOARD_SHEET
End If
Set ws = Nothing

' Solution sichern/erstellen (robust)
On Error Resume Next
Set ws = ThisWorkbook.Worksheets(nm)
On Error GoTo 0

If ws Is Nothing Then
    ' Falls Name schon belegt/ungültig -> eindeutigen Namen finden
    Dim tryName As String, idx As Long
    tryName = nm
    idx = 1
    Do
        On Error Resume Next
        Set ws = ThisWorkbook.Worksheets(tryName)
        On Error GoTo 0
        If ws Is Nothing Then Exit Do
        idx = idx + 1
        tryName = nm & "_" & idx
    Loop

    Set ws = ThisWorkbook.Worksheets.Add(After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.count))
    On Error GoTo RenameErr
    ws.Name = tryName
    On Error GoTo 0
End If

' VeryHidden setzen (sicher)
On Error GoTo HideErr
ws.Visible = xlSheetVisible
ws.Visible = xlSheetVeryHidden
On Error GoTo 0
Exit Sub
RenameErr:
MsgBox "Konnte Blatt '" & nm & "' nicht wie gewünscht benennen. Verwendet: '" & ws.Name & "'.", vbExclamation
On Error GoTo 0
Exit Sub

HideErr:
MsgBox "Konnte Sichtbarkeit für '" & ws.Name & "' nicht setzen. Fehler: " & Err.Description, vbExclamation
On Error GoTo 0
End Sub

[... Rest des Codes wird beim Scrollen sichtbar ...]

8. Makros aktivieren und Spiel starten

  • Wechseln Sie zurück zu Excel (Alt + F11)

  • Speichern Sie die Datei (Strg + S)

  • Gehen Sie zum Menü Ansicht → Makros → Makros anzeigen

  • Wählen Sie „NewGame“ aus der Liste und klicken Sie auf Ausführen

So spielen Sie Minesweeper in Excel

Spielstart:

  • Bei jedem Start können Sie zwischen drei Schwierigkeitsgraden wählen

  • Klein: 9×9 Feld mit 10 Minen

  • Mittel: 16×16 Feld mit 40 Minen

  • Groß: 30×16 Feld mit 99 Minen

Spielregeln:

  • Doppelklick: Deckt eine Zelle auf

  • Rechtsklick: Setzt oder entfernt eine Flagge (🚩)

  • Ziel: Alle Zellen ohne Minen aufdecken

  • Die Zahlen zeigen an, wie viele Minen in den angrenzenden 8 Feldern versteckt sind

Neustart:

  • Nach einem Spiel (gewonnen oder verloren) können Sie auf den Status doppelklicken, um neu zu starten

  • Oder gehen Sie wieder über Ansicht → Makros → „NewGame“

Zusätzliche Tipps

Makro-Sicherheit:
Wenn Excel eine Warnung bezüglich Makros anzeigt, klicken Sie auf „Inhalte aktivieren“ – andernfalls funktioniert das Spiel nicht.

Speichern:
Speichern Sie die Datei unbedingt als .xlsm-Datei, damit die Makros erhalten bleiben.

Problemlösung:
Falls etwas nicht funktioniert, überprüfen Sie, ob:

  • Alle Code-Teile korrekt eingefügt wurden

  • Das Arbeitsblatt „Board“ heißt

  • Das Modul „modMinesweeper“ heißt

  • Makros aktiviert sind

Fazit

Mit wenigen Handgriffen haben Sie Ihr eigenes Minesweeper in Excel erstellt! Es ist nicht nur ein praktischer Pausenfüller, sondern auch ein großartiger Einstieg in die Welt der Excel-Programmierung. Wer weiß – vielleicht entwickeln Sie bald eigene Spiele oder nützliche Makros für Ihre Arbeit.

Viel Spaß beim Spielen und beim Entschärfen der Minen! 💣

Rechtlicher Hinweis:
Dieser Code wurde eigenständig entwickelt und steht unter der MIT-Lizenz zur freien Verfügung.
Die Nutzung erfolgt auf eigene Verantwortung. Microsoft, Excel und VBA sind Marken der
Microsoft Corporation.
Teile des Artikels sind mit Hilfe KI erstellt.