ひっそりとExcel関数のおさらい(乱数を発生させる)
今回は、エクセルで乱数を発生させる関数についてです。
目次
RAND関数(0以上、1未満の乱数を生成する)
=RAND()
引数はありません。0~0.999999999999999の乱数を生成します。シート再計算(要するにシートに変化があった時)のたびに乱数が生成されます。
RANDBETWEEN関数(指定した範囲の整数の乱数を生成する)
=RANDBETWEEN(最小値,最大値)
最小値以上、最大値以下の整数の乱数を生成します。これも、シート再計算のたびに乱数が生成されます。
VBAで、RANDBETWEEN関数を使う
VBAで整数の乱数を生成するには、少しだけ工夫が必要です。
ズバっと、整数の乱数を生成するための関数はないので、Rnd関数(0以上、1未満の乱数を生成する) を応用して、例えば
Int((最大値 - 最小値 + 1) * Rnd + 最小値)
のようにする必要があります。
ん?なんのこっちゃ?
という人の為に解読を試みると・・・・・・
の、ような感じになります。
うーん・・・・・・なんかメンドくさいし、分かりにくいなぁと思う方は
VBAでも、WorksheetFunctionオブジェクトを介してExcel関数(の一部)を利用することができるので、シンプルに
WorksheetFunction.RandBetween(1, 9)
のように記述することもできます。
Randomizeによる、乱数系列の初期化もしなくてもいいようなので、楽チンです。
ぜひ、ご活用を。