乱数ジェネレータを初期化 (乱数系列を再設定) する(Randomize ステートメント)
Randomize ステートメントの使い方
Rnd 関数 を使用する前に使用します。Randomize ステートメントを使用せず、乱数にシード値を設定しない場合、マクロを含むブックを一度閉じてから再度開いて実行した結果が常に一定となります。
シード値とは、乱数発生ルーチンの初期値に使われる値のことです。
Randomize [ ( number ) ]
引数・戻り値
- number ・・・ シードを選択するための数値を指定します。
引数 number を省略した場合、システムタイマーから取得した値(Timer 関数の戻り値)が新しいシード値として使われます。この場合ほぼ毎回違う値を得ることができます。
乱数系列を繰り返すには、数値を指定して Randomize ステートメントを実行する直前に、負の引数を指定して Rnd 関数を呼び出します。引数 number に同じ値を指定して Randomize ステートメントを使用しても、前の乱数系列を繰り返すことはできません。
Randomize 関数の使用例
サンプルVBAソース
|
1 2 3 4 5 6 7 8 9 10 11 |
Sub Sample_Randomize() '新しいシード値として Timer 関数の戻り値を使用し、乱数発生ルーチンを初期化 Randomize '乱数を発生 ActiveCell.Value = Rnd End Sub |
実行結果
上記「サンプルVBAソース」をセルA1 からA5 で実行します。
保存したブックを開いて「サンプルVBAソース」をセルB1 からB5 で実行した結果
Randmize ステートメントを実行して乱数ジェネレータを初期化した後に、Rnd 関数 を実行したため、A 列、B 列の数値が変わりました。
乱数シード値を設定しない場合は、実行結果は常に一定となります。
( ⇒ Rnd 関数使用例2を参照)
関連記事
-
-
指定した数値に対応する選択肢の値・数式を返す(Choose 関数)
Choose 関数 の使い方 Choose 関数は、指定されたインデックス値(1 …
-
-
日付時刻:日付から曜日を取得( Weekday 関数、WeekdayName 関数 )
Weekday 関数(日付から曜日を表す数値を返す)の使い方 【書式】 week …
-
-
xlFileFormat 列挙型
xlFileFormat 列挙型 Workbook.SaveAs メソッド の引 …
-
-
画面の更新を停止(ScreenUpdating プロパティ)
画面の更新を停止 マクロを実行すると、画面が更新されます。これにより、実行速度が …
-
-
文字列:定数(改行・タブ)
改行・タブの定数 これらの定数は、使用前に定義する必要はありません。コード中のど …
-
-
文字列:文字列を最後から検索してその最初の文字位置を返す(InStrRev 関数)
InStrRev 関数 任意の文字列の中で、指定した文字列を最後から検索して、見 …
-
-
日付時刻:日付・時刻の間隔を取得( DateDiff 関数 )
DateDiff 関数の使い方 【書式】 result = DateDiff ( …
-
-
インプットボックスを表示する(InputBox関数・InputBoxメソッド)
「InputBox関数」と「InputBoxメソッド」の違い 「InputBox …
-
-
変数が配列かどうかをチェックする( IsArray 関数 )
IsArray 関数の使い方 【書式】 result = IsArray( va …
-
-
文字列:文字列の長さを取得( Len 関数、LenB 関数 )
Len 関数(文字列の長さを取得) 【書式】 result_len = Len …

