VBA – Chamar/Executar uma Sub a Partir de Outra Sub
In this Article
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.
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
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 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