'指定箇所に処理を移動する GoTo 移動 移動:
処理の途中で条件分岐などにより、指定処理を飛ばして後続処理を実行したい場合があります
その時に使用するのが「GoTo」ステートメントを使用します
このステートメントの後にラベル名を指定することで、そのラベル行に処理が移動します
ラベルに関しては「ラベル名」に「:」を結合して指定します
日本語も使用できますので、わかりやすい名前を付けます
実際の動きの確認です
GoToステートメントの時点でラベル行に処理が移動するので、後続の「MsgBox “”」が実行されていません
また、ラベル行は処理ではありませんので処理実行の黄色にはなりません
ラベル行の次の行から処理が実行されます
ちなみに、行ラベルはタブを挿入できません
このステートメントは一見、便利なコードのように感じるかもしれませんが多用は禁物です
中でも、一番注意してほしいのがループ処理に使用する場面です
ループの途中で強制的にループを抜けさせる場合、配列データがロックしたりする場合があります
ループでそういった移動処理はなるべく使用しないような処理に作成出来るように検討してください
また、あまりにも多く使用するとどこからどこに飛ぶか分かりにくくなる可能性があります
ステートメント自体の使用数は多くても構いませんが、ラベル行は限定するようにします
自分がよく使用する場面は、処理途中で条件が整っていないために処理を終了する際に、その判定までに複数の変数を使用していて全てを解放する必要がある場合に、Exitステートメント実行前にそれら全てを解放するのではなく、通常処理での解放の手前にGoToステートメントで移動させて、解放を1か所だけにする
というような使い方をします
ちなみに、このステートメントは行ラベルの位置に移動するものなので、下方向だけでなく上方向に移動させることも出来ます
条件が整ってなければ、再度上に戻って処理を実行するようなことも可能です
ただ無限ループに注意が必要です