ie-excel

エクセル・マクロでie操作

一定範囲の整数をランダムに取得

一定範囲の整数を取得するには、以下に当てはめると取得可能です。

Int((最大値 - 最小値 +1 ) * Rnd + 最小値)

1〜10までの値をランダムに取得する場合は以下の通りです。

5〜20までの値をランダムに取得する場合は以下の通りです。

Rnd関数を使用する

Rnd関数は、0以上1未満のランダムな小数を返却する関数です。
引数を設定することも可能ですが、ここでは省略します。

Int関数で切り捨てする

引数の小数部分を切り捨て、整数を返却します。
引数numに負の数値を指定した場合、Int関数は引数numを超えない最大の負の整数を返します。
小数の場合、負の方向に切り捨てます。
そのため、Int(-1.4)は-2が返却されます。

Int( 10 * Rnd )

Rnd関数は0から1未満の値が返却されます。
これを10倍していますので、0以上10未満の数字が返却されます。
小数点以下を切り捨てると、0〜9までの整数10個のいずれかの値が取得できることになります。
つまりRndにかけた数字の数だけの整数が発生します。

最大値 - 最小値 +1

最小値から最大値までの整数の数をカウントしています。

Int((最大値 - 最小値 +1 ) * Rnd + 最小値)

最後に最小値を加えているのは、
 Int((最大値 - 最小値 +1 ) * Rnd )により、0から最小値から最大値までの整数の数-1のまでの数字を発生させます。
その数値に最小値を加えれば、求めたい数値が算出されます。

-VBA