On…GoToステートメント 解説(Excel VBA)

On…GoTo ステートメントの解説

概要

「On…GoTo ステートメント」は、VBAプログラミングにおいて、特定の条件に基づいて特定のラベルへのジャンプを制御するためのステートメントです。このステートメントは、条件式の結果に基づいて複数のラベルから1つを選択し、そのラベルへのジャンプを行います。

意義

特定の条件下で異なる処理を行いたい場合、このステートメントを使用して処理のフローを制御することができます。しかし、現代のプログラミングでは「If…ElseIf…Else」構造や「Select Case」構文の方が読みやすく、推奨される方法となっています。

構文

On expression GoTo label1[, label2, ...]

パーツ

expression
評価される数値式。この式の結果に基づいて、指定されたラベルにジャンプします。
label1, label2, …
ジャンプ先のラベル。

パラメータ

expression
0以上の数値式。この値が1なら、label1にジャンプ、2ならlabel2にジャンプ、というように動作します。

サンプルプロシージャ

以下は、On…GoTo ステートメントを使用したサンプルコードです。

Sub OnGoToExample()
    Dim value As Integer
    value = 2
    On value GoTo FirstLabel, SecondLabel, ThirdLabel

    Exit Sub

FirstLabel:
    MsgBox "最初のラベルにジャンプしました"
    Exit Sub

SecondLabel:
    MsgBox "2番目のラベルにジャンプしました"
    Exit Sub

ThirdLabel:
    MsgBox "3番目のラベルにジャンプしました"
    Exit Sub
End Sub

関連するステートメントや関数

「GoTo ステートメント」: 無条件で指定されたラベルの位置にジャンプします。
「If…Then…Else ステートメント」: 条件に基づいて異なる処理を実行します。
「Select Case ステートメント」: 複数の条件に基づいて処理を選択して実行します。

注意事項

「On…GoTo ステートメント」は旧式のプログラミングスタイルであり、現代のVBAプログラミングにおいては「If…Else」や「Select Case」を使用してコードの流れを制御する方が推奨されます。コードの可読性やメンテナンス性を考慮すると、新しいプロジェクトでこのステートメントを使用するのは避けるべきです。