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キーなどで冷静に止める
このようにして、安心してループ処理を使っていきましょう!
コメント