いつも同じn桁の乱数を取得する|Excel VBA |
プログラムのテストをするとき、数字がランダムに並んだ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