制御フローステートメント: スクリプトの実行フローを制御するステートメントの一覧をご紹介します。
- Do…Loop: 条件が満たされるまで(または満たされなくなるまで)コードブロックを繰り返し実行します。
Do While...Loop
またはDo Until...Loop
の形で使われ、条件がTrue
またはFalse
になるまでループします。 - For Each…Next: コレクションまたは配列の各要素に対してコードブロックを実行します。コレクションの各要素を順に処理する場合に便利です。
- For…Next: 指定した回数だけコードブロックを繰り返し実行します。
For
ステートメントの後にはカウンタ変数とループの開始と終了の値を指定します。 - If…Then…Else: 条件が
True
かFalse
かによって、実行するコードブロックを切り替えます。If
の後に条件を指定し、Then
の後に条件がTrue
の場合に実行するコード、Else
の後に条件がFalse
の場合に実行するコードを記述します。 - Select Case: ある変数の値に基づいて、複数のコードブロックから一つを選択して実行します。
If...Then...Else
の連鎖よりも読みやすく、効率的なコードを書くことができます。 - While…Wend: 条件が
True
の間、コードブロックを繰り返し実行します。Do While...Loop
と同様の機能ですが、古いバージョンの VBA ではWhile...Wend
が使われていました。 - With: 一つのオブジェクトに対する複数の操作を簡潔に書くためのステートメントです。
With
の後にオブジェクトを指定し、その後のコードブロックではそのオブジェクトに対する操作を直接記述できます。 - GoSub…Return: プログラム内の特定の位置(サブルーチン)へジャンプし、その後
Return
ステートメントでジャンプ元に戻ります。これにより、コードの一部を何度も再利用することができます。 - GoTo: プログラム内の特定の位置へ無条件にジャンプします。ジャンプ先は通常、行ラベルまたは行番号で指定します。
- Exit:
For...Next
、Do...Loop
、While...Wend
、Sub
、Function
などのブロックを中断して、その直後のステートメントから実行を再開します。 - End: VBAプログラムを完全に終了します。これはエラーハンドリングで致命的なエラーが発生した場合などに使用されます。
コメント