4、VBAによるマクロの作成(基礎編)
4−8、繰り返し処理(2)
繰り返し処理(2)
繰り返し処理の記述のもう1つに
「Do(処理)Loop While(条件)」があります。
これは「(条件)を満たしている間(処理)を繰り返しなさい」という意味です。
前ページの繰り返し処理は、あらかじめ繰り返す回数が決まっている場合でした。今回の場合はある条件を満たしている間繰り返し続けるというもので、条件を満たさなくなった時点で繰り返しから抜け出します。例9)
※今回の例は今まで扱ってきた「テストの点数シリーズ」とはつながりがありません。(Sheet2に処理されます。)
繰り返し処理によって変数「LoopSum」を3ずつ加算し、その都度メッセージを表示してから、結果をSheet2のセルB2に入力。その変数「LoopSum」が20を越えたら繰り返し処理をやめます。
Sub Example9()
Dim LoopSum As Integer
LoopSum = 0
Worksheets("Sheet2").Select
Do
LoopSum = LoopSum + 3
MsgBox "変数に3を加算しました。B2に表示します"
Range("B2") = LoopSum
Loop While LoopSum < 20
MsgBox "LoopSumが20をこえました。終了します。"
End Sub記述後、「マクロの実行」から「Example9」を実行してください。
【このコードの解説】
- 変数「LoopSum」を整数型として宣言し、初期値0を代入
Dim LoopSum As Integer
LoopSum = 0
- 繰り返し部分の解説
Do
LoopSum = LoopSum + 3
MsgBox "変数に3を加算しました。B2に表示します"
Range("B2") = LoopSum
Loop While LoopSum < 20「Do 〜 Loop」は「〜を繰り返しなさい」という意味で繰り返し続ける条件は「While」の後に書きます。
この「While」の後に書いた条件を満たしている間、繰り返しが続きます。今回の場合、「LoopSum < 20」が条件なので、LoopSumが20より小さい間は繰り返しは続き、20をこえた段階で繰り返しが終了します。
具体的にはLoopSumは繰り返されるたびに3ずつ加算されるので、7回繰り返されその値が21になった時点で終了するわけです。
- LoopSumの値が20をこえ、繰り返しが終了したらそのことを伝えるメッセージを表示します。
MsgBox "LoopSumが20をこえました。終了します。"