|
▼yk さん:
ロジックとしてはおもしろそうだなぁ と思って見てました。
>範囲内に同じ数は存在しないという前提でお願いします。
この前提なんですが、
処理を数回繰り返すと値が+5されていきますので、
初期値に同じ数が無かったとしても、
「同じ数になってしまう」ことはあるんじゃないですかね?
その場合は、なにを優先にするんですか?
・加算されていないセル とか(加算されたことを示すフラグが必要)
・中心に近いセル とか(中心が4セルあるので微妙)
Sampleで作られるようなデータに実行するイメージですか?
Sub Sample()
Dim All_Rng As Range
Dim Rng As Range
Dim i As Long
Set All_Rng = Range("B2").Resize(20, 20)
All_Rng.RowHeight = 20
All_Rng.ColumnWidth = 4
All_Rng.Clear
For Each Rng In All_Rng.Cells
Do
Randomize
i = Int(Rnd * 400) + 1
Loop Until WorksheetFunction.CountIf(All_Rng, i) = 0
Rng.Value = i
Next
Set All_Rng = Nothing
End Sub
|
|