VBA – Chamar/Executar uma Sub a Partir de Outra Sub

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on July 22, 2023

Este tutorial ensinará a você como chamar um subprocedimento de dentro de outro subprocedimento no VBA

É muito útil escrever códigos que possam ser usados repetidamente e chamados a partir de vários subprocedimentos em seu projeto – isso pode economizar muito tempo e tornar o código VBA muito mais eficiente.

Execução de um Subprocedimento a Partir de Outro Subprocedimento

Considere os 3 subprocedimentos abaixo:

Sub TesteRotina()
   RodarRotina1
   RodarRotina2
End Sub
Sub RodarRotina1()
   MsgBox "Bom Dia"
End Sub
Sub RodarRotina2()
   MsgBox "A data de hoje é " & Format(Date, "dd/mm/yyyy")
End Sub

Se executarmos o Subprocedimento – TesteRotina – ele chamará RodarRotina1 e RodarRotina2 e duas caixas de mensagem serão exibidas.

teste rotina resposta

Não há limite para o número de subprocedimentos que você pode chamar a partir de outro subprocedimento.

Uso da Instrução Call

Você também pode usar a instrução Call na frente do nome do procedimento para facilitar a leitura do código. No entanto, ela não tem efeito algum sobre como o código é executado ou armazenado.

Sub TesteRotina() 
   Call RodarRotina1
   Call RodarRotina2
End Sub

usando call

Chamada de uma Sub com Argumentos

Também é possível chamar uma sub com argumentos

Sub TesteRotina() 
   RodarRotina1 ("Melanie")
   RodarRotina2 ("Tenha um ótimo dia")
End Sub
Sub RodarRotina1(strNome as String) 
   MsgBox "Bom Dia " & strNome
End Sub
Sub RodarRotina2 (strMensagem as String ) 
   MsgBox "A data de hoje é " & Format(Date, "dd/mm/yyyy")  & VbCrLf & strMensagem 
End Sub

chamada com argumentos

Chamada de uma Subrotina com Argumentos Nomeados

Se você nomear seus argumentos, não precisará passá-los na mesma ordem para suas subrotinas.

Sub TestarRotina() 
   RodarRotina1 strSaudacao:="Como vai você?", strNome:="Melanie"
End Sub
Sub RodarRotina1(strNome as String, strSaudacao as String)  
MsgBox "Bom Dia " &  strNome & vbCrLf & strSaudacao 
End Sub

argumentos nomeados

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA