例: On...GoTo ステートメント

次の例は、On...GoTo と On Error を示しています。

ユーザーが値を入力します。値が 1、2、3 のときは、On...GoTo ステートメントが label1、label2、または label3 に制御を移します。値が On...GoTo に有効な範囲 (ゼロから 255 まで) 内の別の値であれば、制御は次のステートメントに移ります。ユーザーが On...GoTo の範囲外の値を入力するか、CInt 関数で整数に変換できないと、エラーとなります。LotusScript® は、On Error ステートメントに従って OutOfRange ラベルに制御を移します。

ユーザー入力に応じて、OneTwoThree サブルーチンが適切なメッセージを表示します。入力が有効なときは、Exit Sub ステートメントがサブルーチンを終了します。入力が無効なときは制御が EnterNum ラベルに移るため、有効な値を再入力することができます。

Sub OneTwoThree
   Dim num As Integer
   On Error GoTo OutOfRange
EnterNum:
   num% = CInt(InputBox("Enter 1, 2, or 3"))
   On num% GoTo label1, label2, label3
  ' The user did not enter 1, 2, or 3, but a run-time error
  ' did not occur (the user entered a number in 
  ' the range 0 - 255).
   MessageBox "You did not enter a correct value! Try again!"
   GoTo EnterNum
label1:
   MessageBox "You entered 1."
   Exit Sub
label2:
   MessageBox "You entered 2."
   Exit Sub
label3:
   MessageBox "You entered 3."
   Exit Sub
   ' An error condition has occurred.
OutOfRange:
   MessageBox "The value you entered is negative, " _
      & "greater than 255, or not a number. Try again!"
   GoTo EnterNum   
End Sub
OneTwoThree ' Call the OneTwoThree sub.