無限ループが発生したときの対応方法

VBAでループ処理を書く際に、気をつけたいのが無限ループです。無限ループとは、ループが永遠に終わらず、処理が止まらなくなってしまう状態のことです。

初心者のうちはよくあるミスなので、原因と対処法をしっかり押さえておきましょう。


1. 無限ループが起きる例

Dim i As Integer

i = 1
Do While i <= 5
    Debug.Print i
    'i = i + 1 を忘れた!
Loop

このコードは、iの値が変化しないため、i <= 5の条件がずっと真のままになり、無限にループしてしまいます。


2. 無限ループになったときの止め方

もし無限ループが発生してしまったら、次の方法で強制終了できます。

Escキーを押す(基本)

  • 多くの場合、Escキーを押せばVBAの実行をキャンセルできます。

Ctrl + Breakキー(より確実)

  • ノートパソコンなどでは「Ctrl + Fn + B」など、Breakキーが別に割り当てられていることもあります。

VBE(Visual Basic Editor)を閉じる

  • 強制終了の手段として、Editorごと閉じる方法もあります。

3. 無限ループの防止策

ループ内で条件に関係する変数を変更しているか確認

'OK例
Do While i <= 5
    Debug.Print i
    i = i + 1 '条件を変える処理がある!
Loop

ループの回数に上限を設ける

Dim count As Integer
count = 0
Do While 条件
    '処理
    count = count + 1
    If count > 100 Then Exit Do '安全装置
Loop

4. まとめ

無限ループは初心者でも簡単に起こしてしまうトラブルですが、対処方法と予防策を知っていれば恐れる必要はありません。

  • 変数の更新忘れに注意する
  • 必要に応じて回数制限を設ける
  • 発生した場合はEscキーなどで冷静に止める

このようにして、安心してループ処理を使っていきましょう!

コメント

タイトルとURLをコピーしました