HOME > 即効テクニック > Excel VBA > 関数関連のテクニック > いつも同じn桁の乱数を取得する

いつも同じn桁の乱数を取得する|Excel VBA

関数関連のテクニック

いつも同じn桁の乱数を取得する

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

プログラムのテストをするとき、数字がランダムに並んだn桁の数を使いたい、ただし再現確認するため毎回同じ数を取得したい、ということがあります。
あるいは、仲間内の暗号としてみんなで同じn桁の乱数を使いたい、ということがあるかもしれません。

Randomizeステートメントを実行する前に、負の数を引数としてRnd関数を実行すると、同じ乱数の並びが繰り返し得られます。
またこのとき、Randomizeステートメントには引数を指定し、シード値を固定して乱数系列を初期化します。

次のサンプルは、20桁の乱数をメッセージボックスに表示します。
何度実行しても同じ20桁の数が得られます。

Sub Sample()
    Dim i As Long
    Dim myStr As String
    
    '負の数を引数にしてRnd関数を実行
    Rnd -1
    
    '乱数系列を初期化
    Randomize 100
    
    For i = 1 To 20
        '0〜9の範囲の乱数を取得して文字列として結合
        myStr = myStr & CStr(Int((9 - 0 + 1) * Rnd + 0))
    Next i
    
    MsgBox myStr
End Sub