2011年12月11日日曜日

[ExcelVBA] Rnd関数


■構文
Rnd[(number)]

■説明
0以上1未満の値を返します。
第一引数:(省略可能)、単精度浮動小数点数型 (Single) の数値を指定します。

初期シード値が変わらない限り、一連の Rnd 関数が返す乱数系列は同じになります。これは、連続する各 Rnd 関数が乱数系列の中の直前の乱数をシード値として、次の乱数をそれぞれ生成するためです。

システム タイマーから取得した新しいシード値を使って、乱数ジェネレータを初期化するには、Rnd 関数を呼び出す前に、引数を指定せずに Randomize ステートメントを実行してください。

■サンプルコード
Option Explicit

Sub SampleCode()
    Randomize
    
    'A.0-4の値を返す(基本)
    Debug.Print Int(Rnd() * 5)
    
    'B.1-5の値を返す
    'Aに1足す
    Debug.Print Int(Rnd() * 5) + 1
    
    'C.100-104の値を返す
    'Aに100足す
    Debug.Print Int(Rnd() * 5) + 100
    
    'D.100-105の値を返す
    Debug.Print Int(Rnd() * 6) + 100
    
    'E.3,6,9,12,15 の値を返す
    'Bを3倍する
    Debug.Print (Int(Rnd() * 5) + 1) * 3
End Sub

0 件のコメント: