GoTo コマンド

にメンテナンス済み

GoTo コマンドは、VBA プログラミングにおいて、コード内の特定のポイントへ実行をジャンプさせるために使用される制御ステートメントです。

このページでは、GoTo コマンドの基本的な使い方と、その使用に関する注意点を説明します。

GoTo コマンドの基本的な使い方

GoTo コマンドは、以下のように記述します。


GoTo ラベル名

' 処理をスキップしたい部分

ラベル名:

' ジャンプ先の処理

GoToコマンドはラベル名と併せて使用され、指定したラベルにジャンプします。

ラベル名は、コード内の任意の場所に配置することができますが、通常はコマンドの実行をスキップしたい部分の直後や、特定の条件が満たされたときにジャンプするための目的地として使用されます。

GoToコマンドの注意点

ラベルの命名と配置

ラベルは、コード内の任意の場所に配置することができますが、通常はコマンドの実行をスキップしたい部分の直後や、 特定の条件が満たされたときにジャンプするための目的地として使用されます。

ラベル名は英数字とアンダースコアの組み合わせで、数字から始めることはできません。また、同じプロシージャ内でユニークでなければなりません。

ジャンプの範囲

GoTo コマンドを使ってジャンプできるのは、同じプロシージャ(サブプロシージャやファンクション)内のラベルに限定されます。 異なるプロシージャやモジュール間でのジャンプは許されていません。

コードの構造と可読性

GoToコマンドは、現在多くのプログラミング言語では非推奨、もしくは実装されていません。

これは、GoToコマンドがプログラムの流れを不透明にし、コードを読みにくくする可能性があるためです。

したがって、コードの可読性や保守性を高めるために、GoTo コマンドの使用は最小限にすることが望ましいです。

コードの流れをコントロールするためのより構造的なアプローチ(例えば、If-Then-Else 文や Select Case 文)を使用することで、 プログラムの明瞭さを保ちながら同様の結果を得ることができます。

エラーハンドリングにおける使用

GoTo コマンドは、エラーハンドリングの文脈でしばしば使用されます。

エラーが発生した場合に指定したエラーハンドラーにジャンプして、エラーに応じた適切な処理を行うことができます。

以下の例では、エラーハンドリングでの GoTo コマンドの使い方を示しています。

GoToコマンドを使用して、VBA で Try Catch Finally を実現する方法については、以下の記事で紹介しています。

まとめ

GoTo コマンドは、VBA でコードの特定のセクションを条件付きでスキップするための有用なツールですが、その使用は慎重に行う必要があります。

プログラムの可読性と保守性を維持するために、GoTo は最後の手段として考慮し、代わりにより構造化されたコントロールフローを優先して使用することを推奨します。

#VBA