Chamando os procedimentos Sub e Função

Para ligar para um procedimento Sub de outro procedimento, digite o nome do procedimento e inclua valores para qualquer argumentos obrigatórios. As instruções de Ligações não são obrigatórias, mas quando usá-las, você deve colocar argumentos entre parênteses.

Use um procedimento Sub para organizar outros procedimentos para que sejam mais fáceis de entender e depurar. No exemplo a seguir, as chamadas de procedimento Sub Main o procedimento Sub, passa MultiBeepo valor 56 do argumento.

Após MultiBeep executar, o controle retorna à Main, e Main as chamadas do procedimento Sub Message. Message exibe a caixa de mensagem, quando o usuário clica Okey, o controle retorna à Main, e Main conclui.

Sub Main() 
 MultiBeep 56 
 Message 
End Sub 
 
Sub MultiBeep(numbeeps) 
 For counter = 1 To numbeeps 
 Beep 
 Next counter 
End Sub 
 
Sub Message() 
 MsgBox "Time to take a break!" 
End Sub

Observação

Interessado em desenvolver soluções que ampliem a experiência do Office em várias plataformas? Confira o novo modelo de Suplementos do Office. Os suplementos do Office ocupam um pequeno espaço em comparação com os suplementos e as soluções do VSTO, e você pode criá-los usando quase qualquer tecnologia de programação da Web, como o HTML5, JavaScript, CSS3 e XML.

Chame os procedimentos Sub com mais de um argumento

O exemplo a seguir mostra duas maneiras de chamada para um procedimento Sub com mais de um argumento. Na segunda vez da chamada, parênteses são necessárias ao redor os argumentos, porque a instrução de chamada é usada.

Sub Main() 
 HouseCalc 99800, 43100 
 Call HouseCalc(380950, 49500) 
End Sub 
 
Sub HouseCalc(price As Single, wage As Single) 
 If 2.5 * wage <= 0.8 * price Then 
 MsgBox "You cannot afford this house." 
 Else 
 MsgBox "This house is affordable." 
 End If 
End Sub

Use parênteses ao chamar os procedimentos de função

Para usar o valor de retorno de uma função, atribua a função a uma variável e anexe os argumentos entre parênteses, como mostrado no exemplo a seguir.

Answer3 = MsgBox("Are you happy with your salary?", 4, "Question 3") 

Se não estiver interessado no valor de retorno de uma função, você pode ligar para uma função da mesma forma que você chama de um procedimento Sub. Omita os parênteses, liste os argumentos e não atribua a função a uma variável, conforme mostrado no exemplo a seguir.

MsgBox "Task Completed!", 0, "Task Box" 

Se você incluir os parênteses no exemplo, a instrução causará um erro de sintaxe.

Passe argumento nomeado

A instrução em um procedimento Sub ou função pode passar valores para procedimentos de chamada usando argumentos nomeados. Você pode listar argumentos nomeados em qualquer ordem. Um argumento nomeado consiste em nome do argumento seguido por dois-pontos e o sinal de igual (: =) e o valor atribuído para o argumento.

O exemplo a seguir chama a função MsgBox usando argumentos nomeados sem valor de retorno.

MsgBox Title:="Task Box", Prompt:="Task Completed!" 

O exemplo a seguir chama a função MsgBox usando argumentos nomeados. O valor de retorno é atribuído a variável.

answer3 = MsgBox(Title:="Question 3", _ 
Prompt:="Are you happy with your salary?", Buttons:=4) 

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.