ExcelWork.info

Excel(エクセル)のマクロ・VBA・関数・操作などのメモ

乱数ジェネレータを初期化 (乱数系列を再設定) する(Randomize ステートメント)

   

Randomize ステートメントの使い方


Rnd 関数 を使用する前に使用します。Randomize ステートメントを使用せず、乱数にシード値を設定しない場合、マクロを含むブックを一度閉じてから再度開いて実行した結果が常に一定となります。
シード値とは、乱数発生ルーチンの初期値に使われる値のことです。

【書式】

Randomize [ ( number ) ]


引数・戻り値

  • number  ・・・  シードを選択するための数値を指定します。
    引数 number を省略した場合、システムタイマーから取得した値(Timer 関数の戻り値)が新しいシード値として使われます。この場合ほぼ毎回違う値を得ることができます。

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




Randomize 関数の使用例

サンプルVBAソース


実行結果

上記「サンプルVBAソース」をセルA1 からA5 で実行します。

Randomize 関数 例1

保存したブックを開いて「サンプルVBAソース」をセルB1 からB5 で実行した結果

Randomize 関数 例2

Randmize ステートメントを実行して乱数ジェネレータを初期化した後に、Rnd 関数 を実行したため、A 列、B 列の数値が変わりました。
乱数シード値を設定しない場合は、実行結果は常に一定となります。
( ⇒ Rnd 関数使用例2を参照)




 - VBA基本 , , , , , ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

ショートカットメニュー
ショートカットメニュー(CommandBar オブジェクト)

ショートカットメニュー(コンテキストメニュー) 右クリックで表示されるメニューの …

乱数(Rnd 関数)例1
乱数を生成する(Rnd 関数)

Rnd 関数の使い方 Rnd 関数は、0 以上、1 未満の範囲の乱数を単精度浮動 …

四捨五入・切り上げ・切り捨て・丸め(Round 関数 他)

Round 関数(丸め)の使い方 【書式】 value = Round ( ex …

VBA の演算子(論理演算子:And、Eqv、Imp、Not、Or、Xor)

論理演算子 論理演算を行うときに使用する演算子で、以下の 6 種類があります。 …

フォントの設定(Font プロパティ)

フォントの設定(Font プロパティ) 指定されたオブジェクトのフォント情報(F …

変数がEmpty 値かどうかをチェックする( IsEmpty 関数 )

IsEmpty 関数の使い方 【書式】 result = IsEmpty ( e …

DateSerial 関数 TimeSerial 関数 使用例
日付時刻:数値から日付・時刻データを取得( DateSerial 関数、TimeSerial 関数 )

DateSerial 関数(数値を使って日付データを取得) 【書式】 date …

Split 関数(文字列型の一次配列を作成)

Split 関数の使い方 【書式】 myArray = Split ( expr …

指定した値を16進数で表記した文字列に変換する(Hex 関数)

Hex 関数 の使い方 【書式】 result = Hex ( expressi …

文字列:文字列を検索してその最初の文字位置を返す(InStr 関数,InStrB 関数)

InStr 関数・InStrB 関数の使い方 【書式】 result = { I …