目次
はじめに
今回は、VBAでFor文のループを途中で抜け出す方法について勉強しました。
使用環境は以下のとおりです。
- OS: Windows 10 Pro
- バージョン: 20H2
背景
VBAでFor文を使っているときに、目的の条件を満たした時点でループを終了したい場面に遭遇しました。
しかし、そのままではFor文が最後まで回ってしまい、効率が悪いと感じたため、
途中でFor文を抜け出す方法を調べました。
結論:「Exit For」を使う
For文を途中で抜けたい場合は、Exit For
を使用すれば解決できます。
実際に書いたコード
以下に、今回作成したサンプルコードを示します。
Sub 一以上()
Dim i As Long
For i = 1 To 12
If Cells(1, i).Value >= 1 Then
Exit For
End If
Next i
End Sub
コードの解説
- 1行目:プロシージャ名です。自由に命名可能です。
- 2行目:変数
i
をLong型
で宣言しています。 - 3行目:
For i = 1 To 12
で、iを1から12まで順番にループさせます。 - 4行目:
If Cells(1, i).Value >= 1 Then
で、1行目のi列目のセルの値が1以上かどうかを判定しています。 - 5行目:条件を満たした場合、
Exit For
によりループを即座に終了します。 - 6行目:If文の終了。
- 7行目:ループの次の繰り返しへ進む指示。
- 8行目:プロシージャの終了。
なぜExit Forが必要なのか
通常のFor文では、開始から終了まで、すべての回数を順番に実行します。
しかし、目的のデータが見つかった後も処理を続けるのは無駄ですし、
パフォーマンスの低下にもつながります。
そこで、条件を満たした時点でExit Forで即時終了することで、
- 無駄なループを省略できる
- 処理スピードを向上できる
というメリットがあります。
まとめ
- VBAのFor文を途中で抜けるには「Exit For」を使う。
- Exit Forは、条件に合った時点ですぐループを終わらせるために有効。
- 無駄な処理を減らし、プログラムの効率を向上させることができる。
今回の学習を通じて、単にループを書くのではなく、目的に応じて最適なタイミングでループを終了させる重要性を改めて実感しました。
今後も、より効率的なコードを書くために、こうした制御構文を適切に使いこなしていきたいと考えています。