乱数を戻します。
構文
Rnd[(number)]
備考
number引数には、任意の有効な数値式を指定できます。
Rnd関数は、1未満で0以上の値を戻します。numberの値によって、Rndによる乱数の生成方法が決まります:
表11-13 Rnd関数の戻り値
| numberが次の場合 | Rndの生成内容 |
|---|---|
| ゼロ未満 | シードとして数値を使用して毎回同じ数値。 |
| ゼロより大きい | シーケンス内の次の乱数。 |
| ゼロに等しい | 最近生成された数値。 |
| 指定なし | シーケンス内の次の乱数。 |
Rnd関数を連続してコールするたびに前の数値がシーケンス内の次の数値のシードとして使用されるため、特定の初期シードに対して同じ数値シーケンスが生成されます。
Rndをコールする前に、引数なしでRandomize文を使用して、システム・タイマーに基づいたシードで乱数ジェネレータを初期化します。
指定された範囲の乱整数を生成するには、次の式を使用します:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
ここで、upperboundは範囲内の最も高い数値で、lowerboundは範囲内の最も低い数値です。
注:
乱数のシーケンスを繰り返すには、数値の引数を指定したRandomizeを使用する直前に、負の引数を指定したRndをコールします。numberに同じ値を指定したRandomizeを使用すると、前のシーケンスは繰り返されません。
次の例では、Rnd関数が乱数を戻す方法を示します:
例1:
Dim randomNumber Randomize ' Initialize random-number generator randomNumber = Rnd 'Output: random number between 0 and 1
例2:
Dim randomNumber Randomize ' Initialize random-number generator randomNumber = Rnd(-1) ' Use -1 as the seed 'Output: the same random number each time
例3:
Dim randomNumber Randomize ' Initialize random-number generator randomNumber = Rnd ' Generate the first random number 'Output: the first random number randomNumber = Rnd ' Generate the next random number 'Output: the next random number
例4:
Dim randomNumber Randomize ' Initialize random-number generator randomNumber = Rnd(0) ' Generate a random number and store it 'Output: the most recently generated random number
例5:
Dim lowerbound, upperbound, randomNumber lowerbound = 1 upperbound = 10 Randomize ' Initialize random-number generator randomNumber = Int((upperbound - lowerbound + 1) * Rnd + lowerbound) 'Output: a random integer between 1 and 10