HOME > 即効テクニック > Excel VBA > セル操作関連のテクニック > 重複のない、ランダムな数をセルに代入する

重複のない、ランダムな数をセルに代入する|Excel VBA

セル操作関連のテクニック

重複のない、ランダムな数をセルに代入する

(Excel 2000/2002/2003/2007/2010/2013/2016)

次のサンプルは、セル範囲A1:A10に1〜10までの整数をランダムに、かつ重複を許可せずに代入します。

Sub Sample()
    Dim i As Long, myNum As Long
    Dim myFlag(1 To 10) As Boolean

    '乱数系列を初期化
    Randomize
    
    For i = 1 To 10
        Do
            '乱数=Int((最大値 - 最小値 +1 ) * Rnd + 最小値)
            myNum = Int((10 - 1 + 1) * Rnd + 1)
        Loop Until myFlag(myNum) = False
        
        Cells(i, 1).Value = myNum
        myFlag(myNum) = True
    Next i
End Sub