25個のセルに入力した各データを、5×5の別の範囲のセル群にランダムに重複なく転記したい
今回やりたいことはタイトルの通りなのですが、For文の範囲の
決め方でわからないことがあります。
1 To 5
にした時は、入力した5つのセルのデータを5×5の範囲に
重複なく転記してくれたのですが、
1 to 25
にしたときは、なぜかフリーズしてしまいます。強制終了
したところ、1 To 5
にして実行した時と同じ結果が得られました。
Sub Sample()
Dim i As Integer
Dim myNum_1 As Long '転記先列番号
Dim myNum_2 As Long '転記先行番号
Dim myFlag_1(1 To 5) As Boolean, myFlag_2(2 To 6) As Boolean
'乱数系列を初期化
Randomize
For i = 1 To 25 'あらかじめデータを入力した25個のセルを参照する為
Do '転記先の列番号をランダムで重複なく作成する
'乱数=Int((最大値 - 最小値 +1 ) * Rnd + 最小値)
myNum_1 = Int((5 - 1 + 1) * Rnd + 1)
Loop Until myFlag_1(myNum_1) = False
Do '転記先の行番号をランダムで重複なく作成する
'乱数=Int((最大値 - 最小値 +1 ) * Rnd + 最小値)
myNum_2 = Int((6 - 2 + 1) * Rnd + 2)
Loop Until myFlag_2(myNum_2) = False
Cells(myNum_1, myNum_2) = Cells(i, 1).Value
myFlag_1(myNum_1) = True
myFlag_2(myNum_2) = True
Next i
End Sub
以上、どなたか原因を教えていただけないでしょうか。