乱数を生成する(Rnd 関数)
2015/08/26
Rnd 関数の使い方
Rnd 関数は、0 以上、1 未満の範囲の乱数を単精度浮動小数点(Single)で生成します。
result = Rnd [ ( number ) ]
< 整数 min から max の間で、ランダムな整数値 result_int を取得する場合 >
result_int = Int ( Rnd * ( max – min + 1 ) ) + min
引数・戻り値
- number ・・・ 対象となる数値または数式を指定します。指定する値によって返される乱数は、以下の表の通りです。(省略可)
number の値 戻り値 < 0 引数 number のシード値によって決まる同じ数値 > 0 乱数系列の次の乱数 = 0 直前に生成した乱数 省略 乱数系列の次の乱数 - result ・・・ 0 以上 1 未満の範囲の値。
- max ・・・ 生成する乱数の範囲の上限値(整数)を指定します。
- min ・・・ 生成する乱数の範囲の下限値(整数)を指定します。
- result_int ・・・ 生成された乱数( min から max の間の整数値)
初期シード値が変わらない限り、一連の Rnd 関数が返す乱数系列は同じになります。これは、連続する各 Rnd 関数が乱数系列の中の直前の乱数をシード値として、次の乱数をそれぞれ生成するためです。( ⇒ サンプルVBAソース その2を参照)
引数を指定せずに、Randomize ステートメントを実行すると乱数ジェネレータを初期化することができます。
乱数系列を繰り返すには、数値を指定して Randomize ステートメントを実行する直前に、負の引数を指定して Rnd 関数を呼び出します。引数 number に同じ値を指定して Randomize ステートメントを使用しても、前の乱数系列を繰り返すことはできません。
Rnd 関数の使用例
サンプルVBAソース その1
|
1 2 3 4 5 6 7 8 9 10 |
Sub Sample_Rnd1() '整数 1 から 6 までの乱数を発生 MsgBox Int(6 * Rnd) + 1 End Sub |
実行結果
サンプルVBAソース その2
|
1 2 3 4 5 6 7 8 9 10 |
Sub Sample_Rnd2() 'Randomize '乱数を発生 ActiveCell.Value = Rnd End Sub |
実行結果
上記「サンプルVBAソース その2」をセルA1 からA5 で実行して保存後、一旦終了します。
保存したブックを開いて「サンプルVBAソース その2」をセルB1 からB5 で実行した結果
乱数シード値(Randomize)を設定しない場合は、上記のとおり実行結果は常に一定になります。
「サンプルVBAソース その2」の4行目のコメントをはずして、Randomize ステートメントを実行すると乱数ジェネレータを初期化することができます。
関連記事
-
-
変数のデータ型・宣言(Dim ステートメント)
変数の宣言 一般的な方法 【書式】 Dim varname [ As type, …
-
-
VBA の演算子(文字連結演算子:& 演算子 + 演算子)
文字連結演算子 文字連結演算子は、文字列の連結を行うときに使用する演算子で、「& …
-
-
取り消し線を設定する(Strikethrough プロパティ)
取り消し線を設定する(Strikethrough プロパティ) Striketh …
-
-
VBA で正規表現を使う(RegExp オブジェクトのプロパティ)
RegExp オブジェクトのプロパティ RegExp オブジェクトの詳細に関して …
-
-
文字列:2つの文字列を比較する(StrComp 関数)
StrComp 関数の使い方 【書式】 result = StrComp ( s …
-
-
VBA の演算子(比較演算子)
比較演算子 比較演算子による演算の結果は「真」の場合は「True」、「偽」の場合 …
-
-
文字列:文字列の指定した位置から指定文字数取得(Mid 関数,MidB 関数)
Mid 関数・MidB 関数 の使い方 【書式】 result_mid = Mi …
-
-
指定した値を16進数で表記した文字列に変換する(Hex 関数)
Hex 関数 の使い方 【書式】 result = Hex ( expressi …
-
-
ショートカットメニュー(CommandBar オブジェクト)
ショートカットメニュー(コンテキストメニュー) 右クリックで表示されるメニューの …
-
-
文字列:文字列を検索してその最初の文字位置を返す(InStr 関数,InStrB 関数)
InStr 関数・InStrB 関数の使い方 【書式】 result = { I …


