VBSプログラミング最初の一歩 VBScript

乱数を使ってみる

関数の中で面白いものとしては乱数があります。乱数とは「でたらめな数」のことで、いわば電子的なサイコロです。これはRndという関数を使います。この関数は与える値を省略できますので、ただRndと書けば乱数が表示されます。

MsgBox Rnd

このように書くと0以上1未満の乱数、たとえば0.7055475などが表示されるわけです。しかし、このような小数点以下の値ではよくわかりませんので、サイコロのように1~6までの値の乱数を表示するにはどうしたらよいでしょうか?

これは計算を行えば簡単です。0以上1未満の値が返ってくるわけですから6倍すれば0~5までの値になります。あとは1を足せばいいわけです。

MsgBox Rnd*6+1

しかし、これでは小数点以下の値が出てしまいますので、出ないように小数点以下を切り捨てましょう。

MsgBox Int(Rnd*6+1)

これで1~6の値が出るようになり、電子的なサイコロが出来ました。実行するたびに1~6の違う値が出るはず・・ですが、これを実行しても同じ値が何回も表示されてしまいます。なぜでしょうか?

実は乱数といっても計算で算出しているので、その計算の元の数値が同じ場合には乱数が同じ値になってしまうのです。そこで計算の元となる数値を初期化してやる必要があります。乱数の初期化は Randomize という命令を書けばいいだけです。

Randomize
MsgBox Int(Rnd*6+1)

これで実行するたびに値が変わるサイコロのプログラムが出来ました。

このように関数を使うとさまざまな計算が簡単に行えます。関数は計算だけではなく、さまざまな処理をしてくれるものがあります。

問題3-6
上の例では1~6のサイコロが出るようなプログラムを作成しました。
今度は0~9の値が出るようなプログラムを作成してみよう。

問題3-7
1から6の目が出るさいころを二つ振ってその合計の値を表示しよう。