2012-12-13

While文

前回の課題の確認と提出

最初に前回の課題を確認します。

While文を使って個数を数える

今回は20人のデータでしたが、一つのマクロを複数のデータに対して用いる場合は、データによって人数が一定とは限りません。
そのような場合のために、マクロの最初で人数を数えましょう。

数える操作は何回繰り返すかが分かっておらず、上から順に見ていって最後に到達するまで繰り返します。
このように、条件を指定して繰り返すにはWhile文を使います。

Do While 条件
 この部分が繰り返される
Loop

先ほどのマクロのEnd Subより後に、次のマクロを書いてみてください。

Sub 数える()
j = 1
Do While Cells(j + 1, 2) <> ""
  j = j + 1
Loop
人数=j
MsgBox (人数)
End Sub

最後のMsgBox(人数)は、人数という変数の値を表示するマクロです。
Cells(j+1,2)が空っぽではない間は繰り返す、という意味です。
正しく数えられましたか?ずれていた場合はその理由を考えましょう。

配列の大きさを変更する。

人数が分かったので配列を用意するときに

Dim x(人数)

と書きたいのですが、これではエラーになります。
配列を用意するときの(括弧)の中に変数を書くことは出来ません。
マクロの途中で配列の大きさを変えるには、まず最初に

Dim x()

のように(括弧)の中に何も書かずに
人数を数えた後で

ReDim x(人数)

と書きます。

練習

先週作ったマクロを、最初から20人に限らず、マクロの中で人数を数えて配列を用意して計算するように改造してください。

0 件のコメント: