乱数

乱数関数

0 以上、1 未満の単精度浮動小数点数型の乱数の値を返します。

構文: Rnd (number)
number: > 0 のとき、乱数系列の次の乱数を返します。
number: = 0 のとき、直前に生成した乱数を返します。
number: < 0 のとき、常に、引数numberのシード値によって決まる同じ数値を返します。
省略時、乱数系列の次の乱数を返します。
s = Rnd

乱数の初期化

乱数を使用する際には、まず乱数系列が作成され、Rnd関数が呼ばれると、その乱数系列から順に値を取って関数の戻り値として返します。 そのため、Rnd関数を呼び出す際に、初期シード値が変わらない限りRnd関数が返す乱数系列は同じものになります。

Rnd 関数を呼び出す前に、引数を指定せずに Randomize ステートメントを一度だけ実行してください。 システム・タイマーから取得した新しいシード値を使って乱数系列を初期化することができます。

構文: Randomize
' 乱数系列を初期化
Randomize   
' 1から100までの間の乱数を10個取得する
For i = 1 To 10
  rnd_num(i) = Int((100) * Rnd + 1) 
Next i

点の座標(x, y)の組を1000個発生させ、散布図グラフとしてプロットした例

Sub Rnd_test()
  Dim i
  Randomize
  For i = 1 To 1000
    Cells(i, 1).Value = Rnd(1)
    Cells(i, 2).Value = Rnd(1)
  Next i
End Sub

メニューページへ