Das zurückgeben von Werten über per ByRef übergebenen Variablen ist natürlich möglich. Der Unterschied zwischen Unterprogramm und Funktion ist auch mehr die Frage wie sie aufgerufen werden: einmal als Befehl, und einmal für einen Rückgabewert, ähnlich wie interne Funktionen wie z.B. Sin().
Solange man innerhalb der Funktion oder Sub bleibt sind Sprünge per GOTO kein Problem. Nicht erlaubt sind aber Sprünge aus dem Hauptprogramm per GOTO in eine Funktion/Sub oder andersherum aus einer Funktion ins Hauptprogramm. Sofern da Compiler da nicht schon meckert gibt das in aller Regel Fehlerhaften Code. Auch Sprünge (per Goto) zwischen verschiedenen Funktionen / Unterprogrammen sollte man besser nicht machen, auch wenn es in einigen Fällen funktionieren könnte - das kann aber auch sehr schwer zu findende Fehler verursachen.
Lesezeichen