Rem === 八后問題 ===
Dim a(8), b(16), c(16) As Boolean
Dim n As Integer
Private Sub CommandButton1_Click()
For i = 1 To 8
a(i) = True
Next i
For i = 1 To 16
b(i) = True
c(i) = True
Next i
n = 0
Call try(1)
End Sub
Sub prt()
For k = 1 To 8
Cells(1 + n, k + 9) = Cells(1, k)
Next k
n = n + 1
End Sub
Sub try(i)
For j = 1 To 8
If a(j) And b(i + j) And c(i - j + 8) Then
Cells(i) = j
a(j) = False
b(i + j) = False
c(i - j + 8) = False
If i < 8 Then
Call try(i + 1)
Else
Call prt
End If
a(j) = True
b(i + j) = True
c(i - j + 8) = True
End If
Next j
End Sub