お知らせ
こちらの記事は、電子書籍「難しく考えないExcel VBA基礎学習編」として出版されました。記事は途中までが試し読みの対象となります。
howahowablogのVBA記事が電子書籍にて販売となりました。
目標
For~Nextのネストを利用して複雑な処理を記述できる
ネストした繰り返し文の動きをイメージできる
Rnd関数とFor文のネストを利用して重複のないランダムな数列を生成できる
乱数の概要
乱数と疑似乱数
規則性のない予測不能な数値のことを「乱数」言います。コンピュータによって生成される乱数は実は一定のルールで生成されます。これを「疑似乱数」といいます。
規則性のない予測不能な数値を生成するのは何やら難しそうですが、プログラミング言語には、その為の関数が準備されています。VBAにもRnd関数という関数があり、これを利用してランダムな数値(疑似乱数)を生成することができます。
Rnd関数とRandomizeステートメントの利用方法
Rnd関数の文法
Rnd関数は1つの引数を取ることが出来ます。
Rnd(引数)
Rnd(-1)の場合
マイナスの値を引数に設定すると、この引数がシード値として利用され、毎回同じ値を生成することになります。
Rnd(0)の場合
数値の「0」を引数とするとその直前に生成したシード値を再利用することになります。数値の「0」はマイナスの値と違って引数で使用してもシード値として利用されることはありません。
Rnd(4)やRan()の場合
引数に「正の値」か「値を省略」した場合は疑似乱数はシーケンスの次の番号を戻り値として返します。※戻り値:ここはシード値のことではありません。
シード値って何?
ランダムな数値を生成するときは専用のアルゴリズムを利用しています。それらのアルゴリズムは「任意の値」を基にして数値を生成するように組まれています。この任意の値を「シード値」と言います。
例えばシード値を「-1」にすると「-1」を基にした数の生成を行います。シード値が同じ場合は毎回同じ値が生成されます。毎回同じ値となると規則性がない数値と言いづらいですが、このシード値を時間などで設定したりすることで生成される数値をランダムに見せかけることが出来ます。
この記事の試し読みはここまでとなります。
Rnd関数の戻り値
…
Randomizeステートメント
…
サンプルプロシージャ1
…
実行結果
…
Rnd関数を利用して重複のない数列を生成する
重複がない乱数の生成
…
サンプルプロシージャ2
…
実行結果
…
重複のない乱数を応用したプログラムの作成
…
実行結果
…
プロシージャの解説
…
…
…
今回は以上となります。
howahowablogのVBA記事が電子書籍にて販売となりました。
ブックマークのすすめ
「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。