VBA ループの解除

Excel VBA ループの解除

VBAでは、ループの解除はループの終了としても知られています。 しかし、あるループが無限ループに陥り、コードが破壊されてしまうことはよくあることです。

例えば、ループを 10 回実行するように指示し、与えられた条件に基づいて、セルの値またはその他の供給された基準が成功した場合、10 回のループが完了する前に excel ループを終了する必要があるとします。

VBA Break For Loop

VBA Break For Loop

VBAでループを解除/終了させるには?

このVBA Break For Loop Excel Templateはこちらからダウンロードできます – VBA Break For Loop Excel Template

#1 – Break For Next Loop

VBA For Next Loopは、セルをループさせて特定のタスクを実行するために使用します。

Code:

Sub Exit_Loop() Dim K As Long For K = 1 To 10 Cells(K, 1).Value = K Next KEnd Sub

これは、セルA1からA10にシリアル番号を挿入します。

Break For Loop Example 1

Break For Loop Example 1

これはFor Next Loopでは当たり前のことです。

ここで、最初の10個のセルに何らかの値が見つかったときに、ループを解除したいと思います。 そのために、セルA8にいくつかのテキスト値を入力しました。

Break For Loop Example 1-1

Break For Loop Example 1-1

さて、このことをコードで指示したいのですが、「ループしているセルにある値があれば、あらかじめ決められた制限の前にループを抜けなければならない」とします。”

コード:

Sub Exit_Loop() Dim K As Long For K = 1 To 10 If Cells(K, 1).Value = "" Then Cells(K, 1).Value = K Else Exit For End If Next KEnd Sub

以下のコードを見てください:

If Cells(K, 1).Value = “” Then
Cells(K, 1).Value = K
Else
Exit For
End If

このカテゴリの人気コース

Sale

VBAトレーニング (3コース, 12以上のプロジェクト)
4.6 (247 rating) 3コース|12のハンズオンプロジェクト|43時間以上|フルライフタイムアクセス|修了証

If Cells(K, 1).Value = “ループしているセルが等しい “と書いてあります。 Value = “looping cell is equal to nothing continue the loop of insert serial numbers from 1 to 10.

ループの最後の部分には次のように書かれています:

Else

Exit For

上記の条件がTRUEでなければ、「Exit For」ループに入ります。

さて、コードを実行してみましょう。 A7セルまでの連番が挿入されます。

Break For Loop Example 1-2

Break For Loop Example 1-2

上記のコードは何も言わずにループを終了しましたが、どうやってループを終了したことを知ることができるでしょうか。

この曖昧さを解消するために、以下に簡単なVBAのメッセージボックスを置く必要があります。

Code:

Sub Exit_Loop() Dim K As Long For K = 1 To 10 If Cells(K, 1).Value = "" Then Cells(K, 1).Value = K Else MsgBox "We got non empty cell, in cell " & Cells(K, 1).Address & vbNewLine & "We are exiting the loop" Exit For End If Next KEnd Sub

セルをループしているときに、空でないセルが見つかった場合、「We got non-empty cell, in cell A8. We are exiting the loop」

Exit For Next Loop 1-3

Exit For Next Loop 1-3

これにより、ループの終了をセルのアドレスも含めてユーザーに知らせます。

#2 – Break Do Until Loop

For Next Loopを終了させたように、同様に「Do Until」ループも終了させることができます。

コード:

Sub Exit_DoUntil_Loop() Dim K As Long K = 1 Do Until K = 11 Cells(K, 1).Value = K K = K + 1 LoopEnd Sub

このコードは、シリアル番号を挿入するタスクも実行します。

Code:

Sub Exit_DoUntil_Loop() Dim K As Long K = 1 Do Until K = 11 If K < 6 Then Cells(K, 1).Value = K Else Exit Do End If K = K + 1LoopEnd Sub

このコードは、変数の値が6になるまでループを実行します。 その後、ループを終了します。

コード:

Sub Exit_DoUntil_Loop() Dim K As Long K = 1 Do Until K = 11 If K < 6 Then Cells(K, 1).Value = K Else MsgBox "We are exiting the loop because k value is >5" Exit Do End If K = K + 1 LoopEnd Sub

以下のようなメッセージが表示されます。

Exit Do Until Loop

Exit Do Until Loop

このように、与えられた基準に基づいて、基準がTRUEであればループを終了し、そうでなければループを続けることができます。

おすすめ記事

ここまで、VBA Break For Loopの解説をしてきました。 ここでは、VBAのループを終了/解除する方法を、ステップ・バイ・ステップの例やダウンロード可能なエクセルのテンプレートとともに学びます。

  • VBA MEキーワード
  • VBA Chr
  • VBA UsedRange
  • VBA Wait
0 Shares

VBAトレーニング(3コース。 12以上のプロジェクト)

  • 3コース
  • 12のハンズオンプロジェクト
  • iプロジェクト
  • 43時間以上
  • 生涯フルアクセス
  • 修了証

LEARN MORE >>

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です