Do...Loop ステートメントを使用する
Do... を使用します。ステートメントをLoopして、ステートメントブロックを不確定回数実行します。 条件が True の間または True になるまで、ステートメントを繰り返し実行します。
条件が True の間ステートメントを繰り返す
Whileキーワード (keyword) を使用して Do.. で条件をチェックするには、2 つの方法があります。Loop ステートメント。 ループに入る前に条件を調べる方法と、ループが少なくとも 1 回は実行された後で条件を調べる方法です。
次の ChkFirstWhile
プロシージャでは、ループに入る前に条件を調べます。
myNum
が 20 ではなく 9 に設定されている場合、ループ内のステートメントは実行されません。
ChkLastWhile
プロシージャでは、条件が False になる前に、ループ内のステートメントが 1 回だけ実行されます。
Sub ChkFirstWhile()
counter = 0
myNum = 20
Do While myNum > 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "The loop made " & counter & " repetitions."
End Sub
Sub ChkLastWhile()
counter = 0
myNum = 9
Do
myNum = myNum - 1
counter = counter + 1
Loop While myNum > 10
MsgBox "The loop made " & counter & " repetitions."
End Sub
条件が True になるまでステートメントを繰り返す
Until キーワードを使用して Do...Loop ステートメントで条件を調べるには、2 つの方法があります。 ループに入る前に条件を調べる方法と ( ChkFirstUntil
プロシージャ)、ループが少なくとも 1 回は実行された後で調べる方法です ( ChkLastUntil
プロシージャ)。 条件が False の間は、ループを続けます。
Sub ChkFirstUntil()
counter = 0
myNum = 20
Do Until myNum = 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "The loop made " & counter & " repetitions."
End Sub
Sub ChkLastUntil()
counter = 0
myNum = 1
Do
myNum = myNum + 1
counter = counter + 1
Loop Until myNum = 10
MsgBox "The loop made " & counter & " repetitions."
End Sub
ループの内部から Do...Loop ステートメントを終了する
Exit Do ステートメントを使用して Do...Loop を終了できます。 たとえば、無限ループを終了するには、If...Then...Else ステートメントまたは Select Case ステートメントの True ステートメント ブロックの中で Exit Do ステートメントを使用します。 条件が False の場合、ループは通常どおり実行されます。
次の例では、myNum
には無限ループを作成する値が代入されています。
If...Then...Else ステートメントはこの条件を調べてから終了し、無限ループにならないようにしています。
Sub ExitExample()
counter = 0
myNum = 9
Do Until myNum = 10
myNum = myNum - 1
counter = counter + 1
If myNum < 10 Then Exit Do
Loop
MsgBox "The loop made " & counter & " repetitions."
End Sub
注:
無限ループを停止するには、Esc キーまたは Ctrl + Break キーを押します。
関連項目
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。