Workbook
次のプログラムをExcelのWorkbookで開くやり方がよくわかりません。
どうやってやるのか教えていただけないでしょうか?
Option Explicit
Const ALIVE As Integer = 1
Const DEAD As Integer = 0
Const BORN As Integer = 3
Const LIFE As Integer = 2
Const SIZE As Integer = 20
Const Tmax As Integer = 100
Dim C(SIZE, SIZE) As Integer
Dim Xrange As Variant
Private Sub LifeGame()
Dim InitRate As Single
Dim T As Integer
Dim I As Integer, J As Integer
Randomize
Xrange = Range("A1:T20")
InitRate = 0.5
For I = 1 To SIZE
For J = 1 To SIZE
If Rnd() < InitRate Then
C(I, J) = ALIVE
Else
C(I, J) = DEAD
End If
Next J
Next I
For T = 1 To Tmax
For I = 1 To SIZE
For J = 1 To SIZE
If C(I, J) = ALIVE Then
Xrange(I, J) = "■"
Else
Xrange(I, J) = ""
End If
Next J
Next I
Range("A1:T20") = Xrange
For I = 1 To SIZE
For J = 1 To SIZE
C(I, J) = Cnext(I, J)
Next J
Next I
Next T
End Sub
Function Cnext(I As Integer, J As Integer) As Integer
Dim xi As Integer
Dim xj As Integer
Dim xsum As Integer
For xi = I - 1 To I + 1
For xj = J - 1 To J + 1
If (xi > 0 And xi <= SIZE) _
And (xj > 0 And xj <= SIZE) Then
If Not (xi = I And xj = J) Then
If C(xi, xj) = ALIVE Then
xsum = xsum + 1
End If
End If
End If
Next
Next
Select Case xsum
Case BORN
Cnext = ALIVE
Case LIFE
Cnext = C(I, J)
Case Else
Cnext = DEAD
End Select
End Function
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Call LifeGame
End Sub
お礼
有難うございました。ためしたところうまくいきました。