Rozkazy On..GoSub, On..GoToInstrukcja On..GoSub powoduje przekazanie sterowania do jednego z podprogramów wewnątrz procedury w zależności od wartości wyrażenia.Instrukcja On..GoTo powoduje przekazanie sterowania do jednego z linii wewnątrz procedury w zależności od wartości wyrażenia. Składnia rozkazów On..GoSub, On..GoTo: On Wyrażenie GoSub ListaLinii On Wyrażenie GoTo ListaLinii Składnia rozkazów On...GoSub i On...GoTo składa się z następujących części:
Wartość argumentu Wyrażenie jest z zakresu od 1 do 255 i nie może przekraczać liczby etykiet w liście. Sterowanie jest przekazywane do tej linii, której etykieta lub numer odpowiada wartości Wyrażenia w LiścieLinii (np. jeżeli Wyrażenie ma wartość 2, to sterowanie zostanie przekazane do linii, której etykieta lub numer wystepuje jako druga w LiścieLinii). W przypadku, gdy argument Wyrażenie ma wartość 0 lub większą od liczby etykiet w liście, to sterowanie jest przekazywane do instrukcji następnej po instrukcji On...GoSub (lub On...GoTo). Natomiast gdy ma on wartość ujemną lub większą od 255, to zostanie wygenerowany komunikat błędu ("Illegal function call"). Można mieszać ze sobą numery linii i etykiety linii w tej samej liście. Można używać wielu numerów linii i etykiet linii z instrukcjami On...GoSub i On...GoTo. Jednak jeżeli użyte zostanie więcej etykiet lub numerów niż mieści się w jednej linii edytora, należy użyć znaku kontynuacji linii (_), aby zachować logiczną linię w następnej fizycznej linii. Instrukcja Select Case zapewnia lepszy i bardziej elastyczny sposób przekazywania sterowania do wielu linii. Przykład użycia instrukcji On...GoSub i On...GoTo: Sub OnGosubGotoDemo() Dim varNumer, varMojString varNumer = 2 On varNumer GoSub Sub1, Sub2 'przekazanie sterowania do Sub2 i powrót rozkazem Return On varNumer GoTo Linia1, Linia2 'przekazanie sterowania do Linia2 Exit Sub Sub1: varMojString = "W Sub1" : Return Sub2: varMojString = "W Sub2" : Return Linia1: varMojString = "W Linii1" Linia2: varMojString = "W Linii2" End Sub na górę strony... |