Instrução Sub

Declara o nome, os argumentos e o código que formam o corpo de um procedimento Sub.

Sintaxe

Sub name [(arglist)] 
   [statements]
   [Exit Sub]
   [statements]
End Sub 
  • Nome: Nome da instrução Sub; segue as convenções padrão de nomenclatura de variável.

  • arglist: Lista de variáveis que representam argumentos que são passados para o procedimento Sub quando ele é chamado. Vírgulas separam várias variáveis.

  • statements: Qualquer grupo de instruções a serem executadas no corpo do procedimento Sub.

    Argumentos:

    O argumento arglist tem a seguinte sintaxe e partes:

    [ByVal | ByRef] varname[( )]

    • ByVal: Indica que o argumento foi informado por valor.

    • ByRef: Indica que o argumento foi informado por referência.

    • Varname: Nome da variável que representa o argumento; segue as convenções padrão de nomenclatura de variável.

Comentários

Se não forem especificados explicitamente usando a instrução Public ou Private, os procedimentos Sub serão públicos por padrão, ou seja, estarão visíveis para todos os outros procedimentos no seu script. O valor das variáveis locais em um procedimento Sub não é preservado entre as chamadas para o procedimento.

A instrução Exit Sub causa a saída imediata de um procedimento Sub. A execução do programa continua com a instrução que sucede a instrução que chamou o procedimento Sub. É possível incluir qualquer número de instruções Exit Sub em um procedimento Sub.

Como um procedimento Function, o Sub é um procedimento separado que pode obter argumentos, executar uma série de instruções e alterar os valores de seus argumentos. No entanto, diferentemente de um procedimento Function, que retorna um valor, um procedimento Sub não pode ser usado em uma expressão.

O procedimento Sub é chamado usando o nome do procedimento seguido pela lista de argumentos. Consulte a instrução Call para obter informações específicas sobre como chamar procedimentos Sub.

Exemplo 1:

Sub mysub()
  'some statements
End Sub

Exemplo 2:

Sub mysub(argument1, argument2)
  'some statements
End Sub