Procedimentos Sub (Visual Basic)
Um procedimento Sub
é uma série de instruções do Visual Basic entre instruções Sub
e End Sub
. O procedimento Sub
executa uma tarefa e retorna o controle para o código de chamada, mas não retorna um valor para o código de chamada.
Cada vez que o procedimento é chamado, suas instruções são executadas, começando com a primeira instrução executável após a instrução Sub
e terminando com a primeira instrução End Sub
, Exit Sub
ou Return
encontrada.
Você pode definir um procedimento Sub
em módulos, classes e estruturas. É Public
por padrão, o que significa que você pode chamá-lo de qualquer lugar em seu aplicativo que tenha acesso ao módulo, classe ou estrutura na qual você o definiu. O termo método descreve um procedimento Sub
ou Function
que é acessado de fora de seu módulo, classe ou estrutura definidor. Para obter mais informações, consulte Procedimentos.
Um procedimento Sub
pode usar argumentos, como constantes, variáveis ou expressões, que são passados para ele pelo código de chamada.
Sintaxe da declaração
A sintaxe para declarar um procedimento Sub
é a seguinte:
[modifiers] Sub SubName[(parameterList)]
' Statements of the Sub procedure.
End Sub
O modifiers
pode especificar o nível de acesso e informações sobre sobrecarga, substituição, compartilhamento e sombreamento. Para obter mais informações, confira Instrução Sub.
Declaração de parâmetro
Você declara cada parâmetro de procedimento de forma semelhante à forma como declara uma variável, especificando o nome do parâmetro e o tipo de dados. Você também pode especificar o mecanismo de passagem e se o parâmetro é opcional ou uma matriz de parâmetros.
A sintaxe de cada parâmetro na lista de parâmetros é a seguinte:
[Optional] [ByVal | ByRef] [ParamArray] parameterName As DataType
Se o parâmetro for opcional, você também deverá fornecer um valor padrão como parte da declaração. A sintaxe para especificar um valor padrão é a seguinte:
Optional [ByVal | ByRef] parameterName As DataType = defaultValue
Parâmetros como variáveis locais
Quando o controle passa para o procedimento, cada parâmetro é tratado como uma variável local. Isso significa que seu tempo de vida é o mesmo que o do procedimento, e seu escopo é todo o procedimento.
Sintaxe de chamada
Você invoca um procedimento Sub
explicitamente com uma instrução de chamada autônoma. Você não pode chamá-lo usando seu nome em uma expressão. Você deve fornecer valores para todos os argumentos que não são opcionais e deve colocar a lista de argumentos entre parênteses. Se não houver argumentos você pode, opcionalmente, omitir os parênteses. O uso da palavra-chave Call
é opcional, mas não recomendado.
A sintaxe para declarar um procedimento Sub
é a seguinte:
[Call] SubName[(argumentlist)]
Você pode chamar um método Sub
de fora da classe que o define. Primeiro, você precisa usar a palavra-chave New
para criar uma instância da classe ou chamar um método que retorna uma instância da classe. Para obter mais informações, consulte Novo Operador. Em seguida, você pode usar a seguinte sintaxe para chamar o método Sub
no objeto de instância:
object.MethodName[(argumentList)]
Ilustração de declaração e chamada
O procedimento Sub
a seguir informa ao operador do computador qual tarefa o aplicativo está prestes a executar e também exibe um carimbo de data/hora. Em vez de duplicar esse código no início de cada tarefa, o aplicativo apenas chama tellOperator
de vários locais. Cada chamada passa uma cadeia de caracteres no argumento task
que identifica a tarefa que está sendo iniciada.
Sub tellOperator(ByVal task As String)
Dim stamp As Date
stamp = TimeOfDay()
MsgBox("Starting " & task & " at " & CStr(stamp))
End Sub
O exemplo a seguir mostra uma chamada típica para tellOperator
.
tellOperator("file update")