第2講 試行錯誤法でヒント数0数独の解答を作る(1)
第2話 3次順列自動生成ソフト
※本ページは初心者のための excel 2016 マクロ vba 入門講義 基礎から応用まで 第1部の第8講第5話を再利用しています。
を実現するコード
Private Sub CommandButton1_Click()
CommandButton2_Click 'セルの消去
f '3次順列作成プロシージャ
End Sub
Sub f()
Dim i As Integer, j As Integer, k As Integer, cn As Integer
Dim a(3) As Integer '順列を収納する配列
cn = 0 'cnは順列総数をカウントする変数、0に初期化
For i = 1 To 3
a(0) = i 'セル番号0に1から3を入力
For j = 1 To 3
If j <> a(0) Then
a(1) = j 'セル番号1に1から3を入力
For k = 1 To 3
If k <> a(0) And k <> a(1) Then
a(2) = k 'セル番号2に1から3を入力
Call g(cn, a())
cn = cn + 1
End If
Next
End If
Next
Next
End Sub
Sub g(cn As Integer, a() As Integer) '表示プロシージャ
Dim i As Integer
For i = 0 To 2
Cells(5, 1 + i + 4 * cn) = a(i)
Next
End Sub
Private Sub CommandButton2_Click()
Rows("4:20000").Select
Selection.ClearContents
Cells(1, 1).Select
End Sub
参考ダウンロード添付ファイル
※注釈文の
'セル番号0に1から3を入力
のセル番号の意味は第2講第6話で説明しています。
さて、次は4次順列の生成です。
表示を上のようにうまく配置出来るように工夫してみて下さい。