第5講 4次魔方陣と6次魔方陣の作成
第3話 対角線部分を交換する
から実行ボタンを押すと、
となり、消去ボタンを押すと、
に戻るを実現するプログラム例
Private Sub CommandButton1_Click()
CommandButton2_Click
Dim i As Byte, j As Byte
For i = 0 To 3 'B2からE6に自然配列を作る
For j = 0 To 3
Cells(3 + i, 2 + j) = 4 * i + j + 1
Next
Next
For i = 0 To 3 'B2からE6の内容をB7からE11にコピーする
For j = 0 To 3
Cells(8 + i, 2 + j) = Cells(3 + i, 2 + j)
Next
Next
Dim w As Byte
Cells(7, 2) = "対角線を交換すると、"
For i = 0 To 1 '対角線部分を交換する
w = Cells(11 - i, 5 - i)
Cells(11 - i, 5 - i) = Cells(8 + i, 2 + i)
Cells(8 + i, 2 + i) = w
Next
End Sub
Private Sub CommandButton2_Click()
Rows("3:2000").Select
Selection.ClearContents
Cells(1, 1).Select
End Sub
参考ダウンロード添付ファイル
次は、
から実行ボタンを押すと、
となり、消去ボタンを押すと、
に戻るを実現することです。
ここでも考え方を示しておきます。
まず、B8からE11までをB13からE16までにコピーします。
その上で逆対角線部分を交換するのですが、
問題は、以下にしてFor文の制御変数iで
Cells(13 , 5)とCells(16, 2)、
Cells(14 , 4)とCells(15, 3)を表現するかです。
前話と同じようにFor文は
For i = 0 To 1
Next
となります。3行を埋めれば魔方陣は完成します。
第2話へ 第4話へ