【VBA】For文を途中で抜け出す方法|Exit Forの使い方

目次

はじめに

今回は、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行目:変数iLong型で宣言しています。
  • 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は、条件に合った時点ですぐループを終わらせるために有効。
  • 無駄な処理を減らし、プログラムの効率を向上させることができる。

今回の学習を通じて、単にループを書くのではなく、目的に応じて最適なタイミングでループを終了させる重要性を改めて実感しました。
今後も、より効率的なコードを書くために、こうした制御構文を適切に使いこなしていきたいと考えています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次