GO-AHEADの日記

GO-AHEADで出版した書籍の紹介をします

Re5:50歳から始めるラズベリーパイ-6

Re5:50歳から始めるラズベリーパイ

簡単なゲームで学ぶVBAプログラミング入門

amazon kindleを出版しました。


3.3 ブロックパズルの作成-2

'main()のプログラムです。
'main()では初期設定をしています。

Option VBAsupport 1

Dim table(3, 3) As Integer
Dim m As Integer '0:何もしない、1:上、2:右、3:下、4:左 時計回り


Sub Main

Dim x(9) As Integer '角の値を決めます。
Dim y(9) As Double

Range("A:E").ColumnWidth = 7
wi = Columns("A").Width '幅を取得する
Range("1:4").RowHeight = wi

Range("A1: E4 ").Clear 'A1からB2の範囲をクリア"

Range("A1:C3").HorizontalAlignment = xlCenter
Range("A1:C3").Font.Size = 32
Range("A1:C3").Borders.Weight = xlThin'xlHairline:極細, xlThin:細い
Range("A1:C3").Borders.LineStyle = xlContinuous'xlContinuous:細い実線

 For i = 0 To 8
   y(i) = Rnd
   'Cells(i + 1, 7).Value = y(i)
   x(i) = i + 1
Next i

 For i = 0 To 7
   For ii = i + 1 To 8
     If (y(i) < y(ii)) Then
     t1 = y(ii)
       y(ii) = y(i)
       y(i) = t1
       t2 = x(ii)
       x(ii) = x(i)
       x(i) = t2
    End If
   Next ii
 Next i

n = 0

 For i = 0 To 2
   For ii = 0 To 2
     table(i, ii) = x(n)
     n = n + 1
   Next ii
Next i


For i = 0 To 2
   For ii = 0 To 2
     If (table(i, ii) <> 9) Then
          Cells(i + 1, ii + 1) = table(i, ii)
     End If
   Next ii
Next i

For i = 0 To 2
   For ii = 0 To 2
     If (Cells(i + 1, ii + 1).Value >= 1 And Cells(i + 1, ii + 1).Value <= 3) Then
          Cells(i + 1, ii + 1).Interior.Color = RGB(0, 255, 0)
     ElseIf (Cells(i + 1, ii + 1).Value >= 4 And Cells(i + 1, ii + 1).Value <= 6) Then
          Cells(i + 1, ii + 1).Interior.Color = RGB(255, 255, 0)
     End If
     If (Cells(i + 1, ii + 1).Value >= 7 And Cells(i + 1, ii + 1).Value <= 9) Then
          Cells(i + 1, ii + 1).Interior.Color = RGB(255, 0, 0)
     End If
   Next ii
Next i


End Sub