Rnd関数

Rnd関数は、VBA関数の中で数字・三角関数に分類される関数です。

目次

スポンサー リンク

Rnd関数とは

Rnd関数は、単精度浮動小数点数型 (Single) の乱数を返します。

構文Rnd(number)
引数省略説明
number ×引数 number には、単精度浮動小数点数型 (Single) の数値または任意の有効な数式を指定します。

戻り値

number の値戻り値
< 0常に、引数 number のシード値によって決まる同じ数値を返します。
> 0乱数系列の次の乱数を返します。
= 0直前に生成した乱数を返します。
= 0乱数系列の次の乱数を返します。

シード値とは、擬似乱数の生成に使われる初期値。たとえば、Randomize ステートメントを使うと、Rnd 関数が重複しない擬似乱数系列を生成するために使うシード値が生成されます。

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

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

任意の範囲の整数の乱数を生成するには、次の式を使ってください。
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

この式では、変数 upperbound には範囲の上限の値を指定し、変数 lowerbound には範囲の下限の値を指定します。乱数系列を繰り返すには、数値を指定して Randomize ステートメントを実行する直前に、負の引数を指定して Rnd 関数を呼び出します。引数 number に同じ値を指定して Randomize ステートメントを使用しても、前の乱数系列を繰り返すことはできません。

Rnd関数のサンプルコード

次の例は、Rnd 関数を使って、1 から 6 までの乱数整数を発生させます。


Sub sample()

 Dim MyValue
 MyValue = Int((6 * Rnd) + 1)        ' 1 から 6 までの乱数整数を発生させます。

End Sub

実行結果

5

解説

数学・三角関数一覧

関数名内容
Abs数値の絶対値を算出します。
Atn数値のアークタンジェントを算出します。
Cos数値のコサインを算出します。
Exp数値の指数関数を算出します。
Fix数値の整数部分を返します。
指定した数値が負の場合は、値を超える最小の負の整数を算出します。
Log自然対数を算出します。
Rnd乱数を算出します。
Sgn数式の符号を値で算出します。
Sin数値のサインを算出します。
Sqr数値の平方根を算出します。
Tan数値のタンジェントを算出します。
ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください^^

VBAのInternetExplorer操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE(InternetExplorer)操作にも挑戦してみてください^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

エクセルVBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。