第7講 For文を入れ子式に使い多次元ループを実現する
第8話 4次方陣順列作成マクロ例

4次方陣順列作成マクロ解答例
Private Sub CommandButton1_Click()
  Dim i As Byte, j As Byte, k As Byte, l As Byte, cn As Byte
  cn = 0
  For i = 0 To 3
    For j = 0 To 3
      If j <> i Then
        For k = 0 To 3
          If k <> i And k <> j Then
            For l = 0 To 3
              If l <> i And l <> j And l <> k Then
                Cells(5 + 3 * Int(cn / 4), 2 + 3 * (cn Mod 4)) = i + 1
                Cells(5 + 3 * Int(cn / 4), 3 + 3 * (cn Mod 4)) = j + 1
                Cells(6 + 3 * Int(cn / 4), 2 + 3 * (cn Mod 4)) = k + 1
                Cells(6 + 3 * Int(cn / 4), 3 + 3 * (cn Mod 4)) = l + 1
                cn = cn + 1
              End If
            Next
          End If
        Next
      End If
    Next
  Next
End Sub
Private Sub CommandButton2_Click()
  Rows("5:200").Select
  Selection.ClearContents
  Range("A1").Select
End Sub

方陣順列

参考ファイル

さて、魔方陣や数独に直結する課題をもっと取り組みたいところでしょうが、
学ばなければ基礎事項がまだいくつか残されています。
大切な基礎事項の1つ配列を次話で学ぶことにしましょう。


7話へ 第8講第1話へ


トップ

初心者のためのc++ vc++ c言語 入門 基礎から応用までへ
初心者のための excel 2007 2010 2013 vba マクロ 入門 基礎から応用まで
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
vb講義トップへ
VB講義基礎へ
専門用語なしのC++入門へ
専門用語なしのJava入門へ
専門用語なしのVBA入門

数独のページ
魔方陣のページ
数学研究室に戻る
本サイトトップへ