VBAでは、プログラムを実行する時に、GoTo構造を使用して指定されたラベルにジャンプして実行するため、GoToステートメントと指定されたラベルの間のコードが実行されません。
実際のVBA開発過程では、Goto構造は主にエラー状況を処理するために使用されます。つまり、エラーが発生すると、エラーを処理するコードにジャンプします。
ステートメント
GoTo構造は、GoToステートメントとlabelステートメントで構成されます。 基本的なステートメントは次のとおりです。
GoTo [ラベル]
...
[ラベル]:
'実行中のコード
ジャンプの位置は、キーワードGotoの後の[label]によって、VBAがコード内で対応する[label]:キーワードを見つけ、ラベルの次の行からプログラムの実行を続行することをプログラムに通知されます。
ジャンプのラベルの後にコロン(:)が続くことに注意してください。
実例
次の例は、GoTo構造の基本的な使い方を示しています。VBAで割り算し、除数が0の場合、プログラムの最後にジャンプし、「除数を0にすることはできません」というエラーを提示します。
Sub MyCode()
Dim num1 As Double
Dim num2 As Double
Dim result As Double
num1 = 100
num2 = 0
If num2 = 0 Then GoTo error
result = num1 / num2
Exit Sub
error:
MsgBox "除数を0にすることはできません"
End Sub
ご覧のとおり、この例では、num2が除数であり、プログラムはnum2は0かどうかを判断します。0の場合、エラーラベルにジャンプし、除算部分は実行されません。
まとめ
Goto構造は比較的に簡単で、実際の開発過程では3つの主要な構造ほど頻繁に使用されませんが、場合によって、コードをより簡潔で読みやすくすることができます。 GoToステートメントはエラー処理でよく使用され、「元に戻す/やり直し」の状況で使用して、ユーザーのニーズに応じて同じ手順を繰り返すこともできます。これに関わる情報は今後詳しく説明します。
コメントを残す