2010-10-07

環境数理学演習

今日は班分けをしました。班分けに使ったプログラムを公開します。

Sub くじ引き()
Dim くじ(25) As Integer
Dim 組(5) As Integer
Randomize
組(1) = 5
組(2) = 4
組(3) = 4
組(4) = 4
組(5) = 4
i = 1
For j = 1 To 5
  For k = 1 To 組(j)
    くじ(i) = j
    i = i + 1
  Next k
Next j
総数 = i - 1
残数 = 総数
くじ(i) = -1
For i = 1 To 総数
  MsgBox ("班分けをします。メモの準備が出来たらOKをクリックしてください")
  乱数 = Application.RoundDown((Rnd() * 残数), 0) + 1
  MsgBox (i & "番目のあなたは" & くじ(乱数) & "班です。")
  Cells(i, 1) = i
  Cells(i, 2) = くじ(乱数)
  For j = 乱数 To 残数
    くじ(j) = くじ(j + 1)
  Next j
  残数 = 残数 - 1
Next i
End Sub

0 件のコメント: