前回For Nextステートメントの繰り返し処理についてお話させて頂きました。
条件分岐も「Ifステートメント」と「Select Caseステートメント」があったように、
繰り返し処理の他の方法もご紹介していきます

Do While Loop文を使った繰り返し処理

Do While Loopステートメントは、条件式を満たしている間だけ処理を繰り返します。For Nextと違う点は繰り返しの回数指定ではなく、状況によって繰り返し処理の回数を判断させる点です。

Do While Loop~基本構文~

Do While Loopの基本構文

Do While 繰り返しの条件
 ’繰り返したい処理
Loop

とってもシンプル構文

サンプル文

Sub test11()
Dim i As Long
i = 1

Do While i < 10
Cells(i, 1).Value = i & “回目の繰り返しです”
i = i + 1
Loop

End Sub

Do While文の実行例
解説
  • 繰り返し条件…iが10より小さい間
  • 繰り返しの処理内容…”i回目の繰り返しです”の文字列を、セル(i,1)に代入する

コード

  • Sub test11()
  • Dim i As Long
  • i = 1
  • Do While i < 10
  • Cells(i, 1).Value = i & “回目の繰り返しです”
  • i = i + 1
  • Loop
  • End Sub

解説

  • test11プロシージャの開始
  • Long整数型iを宣言
  • iに1を代入
  • iが10より小さい間(⑤、⑥を)繰り返す
  • セル(i,1)に “i回目の繰り返しです”を入れる
  • iに、i+1を代入
  • 繰り返す
  • test11プロシージャ終了

DO While Loop~ループを途中で抜ける時~

Do While Loopステートメントを途中で抜ける際は、Exit Doを使用します。

構文 ループを抜ける

Do While 繰り返しの条件
 ’繰り返したい処理
 ’処理を終了する時 Exit Do
Loop

サンプル文

Sub test112()
Dim i As Long
i = 1

Do While i < 10
Cells(i, 1).Value = i & “回目の繰り返しです”
  If i=5 then
Exit Do
End If
i = i + 1
Loop

End Sub

Do While Exitの例
解説
  • 繰り返し条件…iが10より小さい間
  • 繰り返しの処理内容…”i回目の繰り返しです”の文字列を、セル(i,1)に代入する
  • ループを抜ける時…iが5の時(Ifステートメントを入れ子にしてExit Doで処理)

Do Until Loop文を使った繰り返し処理

先ほど紹介した、Do While Loopとすごく似たステートメントにDo Until Loopステートメントがあるのでご紹介します DoUntilは条件がFalseの間処理を繰り返します。

Do Until Loop~基本構文~

Do Until Loopの基本構文

Do Until 繰り返しの条件
 ’繰り返したい処理
Loop

Untilだと条件式を満たすまではになり、条件式に合うまで処理を続けることになります

サンプル文

Sub test113()
Dim i As Long
i = 1

Do Until i > 10
Cells(i, 1).Value = i & “回目の繰り返しです”
i = i + 1
Loop

End Sub

Do until文サンプル
解説
  • 繰り返し条件…iが10より大きくなるまで
  • 繰り返しの処理内容…”i回目の繰り返しです”の文字列を、セル(i,1)に代入する

iが10より大きくなるまで繰り返すという条件だから、iが10の時は実行してます

まとめ

Do While Loop…条件を満たす間処理を繰り返します。
Do Until Loop…条件を満たすまで処理を繰り返します。

Exit Do…ループから途中で抜ける際に使用します。

Do Loopの繰り返し処理か回数指定ではなく、条件によって繰り返し処理を行うステートメントで
For~Nextは回数を指定して繰り返し処理を行うステートメントです。