Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Una routine Sub
è una serie di istruzioni di Visual Basic racchiuse tra le istruzioni Sub
e End Sub
. La Sub
routine esegue un'attività e quindi restituisce il controllo al codice chiamante, ma non restituisce un valore al codice chiamante.
Ogni volta che viene chiamata la routine, vengono eseguite le relative istruzioni, a partire dalla prima istruzione eseguibile dopo l'istruzione Sub
e terminando con la prima End Sub
istruzione , Exit Sub
o Return
rilevata.
È possibile definire una Sub
routine in moduli, classi e strutture. Per impostazione predefinita, è Public
, il che significa che è possibile chiamarlo da qualsiasi punto dell'applicazione che abbia accesso al modulo, alla classe o alla struttura in cui è stata definita. Il termine metodo descrive una Sub
routine o Function
a cui si accede dall'esterno del modulo di definizione, della classe o della struttura. Per altre informazioni, vedere Procedure.
Una routine Sub
può accettare argomenti, ad esempio costanti, variabili o espressioni, che vengono passati dal codice chiamante.
Sintassi di dichiarazione
La sintassi per dichiarare una routine Sub
è la seguente:
[modifiers] Sub SubName[(parameterList)]
' Statements of the Sub procedure.
End Sub
modifiers
può specificare il livello di accesso e le informazioni sull'overload, l'override, la condivisione e l'ombreggiatura. Per ulteriori informazioni, consultare Dichiarazione secondaria.
Dichiarazione di parametro
Ogni parametro di routine viene dichiarato in modo analogo a come si dichiara una variabile, specificando il nome del parametro e il tipo di dati. È anche possibile specificare il meccanismo di passaggio e se il parametro è facoltativo o una matrice di parametri.
La sintassi per ogni parametro nell'elenco di parametri è la seguente:
[Optional] [ByVal | ByRef] [ParamArray] parameterName As DataType
Se il parametro è facoltativo, è necessario specificare anche un valore predefinito come parte della relativa dichiarazione. La sintassi per specificare un valore predefinito è la seguente:
Optional [ByVal | ByRef] parameterName As DataType = defaultValue
Parametri come variabili locali
Quando il controllo passa alla routine, ogni parametro viene considerato come una variabile locale. Ciò significa che la sua durata è uguale a quella della procedura e il suo ambito è l'intera procedura.
Sintassi di chiamata
È possibile richiamare una Sub
routine in modo esplicito con un'istruzione chiamante autonoma. Non è possibile chiamarlo usando il nome in un'espressione. È necessario specificare i valori per tutti gli argomenti che non sono facoltativi ed è necessario racchiudere l'elenco degli argomenti tra parentesi. Se non vengono specificati argomenti, è possibile omettere facoltativamente le parentesi. L'uso della Call
parola chiave è facoltativo ma non consigliato.
La sintassi per una chiamata a una Sub
routine è la seguente:
[Call] SubName[(argumentlist)]
È possibile chiamare un Sub
metodo dall'esterno della classe che lo definisce. Prima di tutto, è necessario usare la New
parola chiave per creare un'istanza della classe o chiamare un metodo che restituisce un'istanza della classe . Per ulteriori informazioni, vedere New Operator. È quindi possibile usare la sintassi seguente per chiamare il metodo sull'oggetto istanza Sub
.
object.MethodName[(argumentList)]
Illustrazione della dichiarazione e della chiamata
La procedura seguente Sub
indica all'operatore computer quale attività l'applicazione sta per eseguire e visualizza anche un timestamp. Anziché duplicare questo codice all'inizio di ogni attività, l'applicazione chiama tellOperator
solo da diverse posizioni. Ogni chiamata passa una stringa nell'argomento task
che identifica l'attività avviata.
Sub tellOperator(ByVal task As String)
Dim stamp As Date
stamp = TimeOfDay()
MsgBox("Starting " & task & " at " & CStr(stamp))
End Sub
Nell'esempio seguente viene illustrata una chiamata tipica a tellOperator
.
tellOperator("file update")