タグ

2009年10月28日のブックマーク (1件)

  • VBA応用(教室の席替えを乱数処理で自動化)

    「Rnd関数」は0以上、1未満の範囲の値を浮動小数点数型で返します。 今回のサンプルは、学校でよく行なわれる「席替え」です。添付のサンプルは40人学級ですが、人数の組み替えもできるようにしてあります。 浮動小数点数型の乱数を1~40の整数に変換させて取り出したいわけですが、問題なのは、40回乱数を発生させて整数に置き換えた段階で、以前に発生・変換した値とかなりダブってしまうことです。 もちろん、浮動小数点数の乱数値の段階では同じ値は採らないのでしょうが、整数にまるめた時点で同じ値になってしまうことが結構あるのです。 ここでは、そのダブりを取り除いてランダムな1~40の値を発生させる方法を2種類で説明してみます。 これが理解できれば、「席替え」の他にも、「忘年会の抽選」とか応用ができるでしょう。 まず、どのような動作なのか、マクロを動かしてみましょう。 このような「教室」をイメージしたシンプ