Πρόταση On...GoSub; Πρόταση On...GoTo
Διακλαδώνεται σε μία από τις γραμμές που έχουν καθοριστεί στον κώδικα του προγράμματος, ανάλογα με την τιμή μιας αριθμητικής παράστασης.
Σύνταξη:
On N GoSub Label1[, Label2[, Label3[,...]]]
On NumExpression GoTo Label1[, Label2[, Label3[,...]]]
Παράμετροι:
NumExpression: Κάθε αριθμητική παράσταση μεταξύ 0 και 255 που καθορίζει σε ποια από τις γραμμές διακλαδώνεται το πρόγραμμα. Αν η παράμετρος NumExpression είναι 0, τότε η πρόταση δεν εκτελείται. Αν η παράμετρος NumExpression είναι μεγαλύτερη από 0, το πρόγραμμα μεταπηδά στην αντίστοιχη ετικέτα με αριθμό θέσης που αντιστοιχεί στην παράσταση (1 = Πρώτη ετικέτα, 2 = Δεύτερη ετικέτα)
Label: Γραμμή προορισμού σύμφωνα με την δομή GoTo ή με την GoSub.
Οι συμβάσεις GoTo ή η GoSub είναι έγκυρες
Παράδειγμα:
Sub ExampleOnGosub
Dim iVar As Integer
Dim sVar As String
iVar = 2
sVar =""
On iVar GoSub Sub1, Sub2
On iVar GoTo Line1, Line2
Exit Sub
Sub1:
sVar =sVar & " From Sub 1 to" : Return
Sub2:
sVar =sVar & " From Sub 2 to" : Return
Line1:
sVar =sVar & " Label 1" : GoTo Ende
Line2:
sVar =sVar & " Label 2"
Ende:
MsgBox sVar,0,"On...GoSub"
End Sub