O que é Call Sub no VBA?
Podemos executar todos os subprocedimentos do mesmo módulo em uma única sub-rotina, e o processo de executá-los em uma única sub-rotina do VBA chamada “Call Sub”.
Em alguns dos casos, podemos precisar escrever uma grande quantidade de código e escrevê-los em uma única macro cria muitos problemas ao depurar o código. No início, todos tendem a fazer isso puramente por falta de conhecimento sobre o método “Call Sub”.
Não é uma boa prática manter todos os códigos em um único subprocedimento. Precisamos dividi-los em vários subprocedimentos para simplificar o código.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba_.png.webp)
Como chamar a subrotina no Excel VBA?
Executar a macro do Excel de um procedimento para outro torna a vida mais fácil puramente com base na economia de muito tempo durante a execução, bem como durante a depuração do código em caso de qualquer erro.
Código:
Sub Code_1 () Range ("A1"). Value = "Hello" End Sub Sub Code_2 () Range ("A1"). Interior.Color = rgbAquamarine End Sub
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__2.png.webp)
Na imagem acima, temos dois subprocedimentos. O primeiro é “Código_1,” e o segundo é “Código_2”.
No primeiro subcódigo de chamada VBA, acabei de escrever um código para inserir um valor na célula A1 como “Olá”. No segundo subprocedimento, escrevi o código para alterar a cor interna da célula A1 para “rgbAquamarine”.
Agora irei rodar o primeiro código, ou seja, “Code_1”.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba_.gif)
Agora irei rodar o segundo código, ou seja, “Code_2”.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__2.gif)
Aqui eu executei o código times.
Usando o VBA “chamar Sub”, podemos executar ambos os subprocedimentos em uma única macro. Precisamos apenas adicionar a palavra “Call”, seguida por um nome de macro.
Veja a imagem gráfica abaixo.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__3.png.webp)
Mencionei o código como “Call Code_2” apenas no primeiro subprocedimento. Agora, para entender, vamos executar o código linha por linha. Pressione a tecla F8. Isso irá destacar o nome da macro.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__4.png.webp)
Pressione a tecla F8 mais uma vez para pular para a próxima linha.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__5.png.webp)
A linha amarela mostra que o código destacado está prestes a ser executado se pressionarmos a tecla F8 mais uma vez. Pressione a tecla F8 agora.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__6.png.webp)
Como podemos ver, foi inserida a palavra “Hello” na célula A1. Agora a linha “Call Code_2” foi destacada.
“Call Code_2” tem a tarefa de mudar a cor interna da célula A1 e a palavra “Call Code_2” irá executar este código apenas a partir do subprocedimento real.
Mas pressione a tecla F8 para ver a mágica.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__7.png.webp)
Ele saltou para o nome de subprocedimento mencionado. Pressione a tecla F8 mais uma vez.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__8.png.webp)
Agora a linha de tarefa real realçada, para executar isso pressione a tecla F8 mais uma vez.
![](https://cdn.know-base.net/2616475/vba_call_sub_step_by_step_guide_how_to_call_subroutine_in_excel_vba__9.png.webp)
Assim, podemos executar muitos subprocedimentos de um subprocedimento chamando o subprocedimento por seu nome com a palavra “Call”.
Nota:
- Podemos executar a macro de outro subprocedimento sem usar a palavra “Call”, mas apenas mencionando o próprio nome da macro.
- Esta não é a melhor prática porque se o subprocedimento da macro contiver parênteses que você deseja executar, a palavra “Chamar” é obrigatória.
- Na minha opinião pessoal, use sempre a palavra “Ligar” porque é apenas uma palavra de 4 letras que permite que outras pessoas entendam o código corretamente.