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")

Confira também