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」を実行してください。

【このコードの解説】

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になった時点で終了するわけです。

MsgBox "LoopSumが20をこえました。終了します。"