Sub-rotina Excel VBA: como chamar Sub em VBA com exemplo

O que รฉ uma sub-rotina no VBA?

A Sub-rotina em VBA รฉ um trecho de cรณdigo que executa uma tarefa especรญfica descrita no cรณdigo, mas nรฃo retorna um resultado ou valor. As sub-rotinas sรฃo usadas para dividir grandes pedaรงos de cรณdigo em pequenas partes gerenciรกveis. As sub-rotinas podem ser recuperadas vรกrias vezes em qualquer lugar do programa.

Digamos que vocรช criou uma interface de usuรกrio com caixas de texto para aceitar dados de entrada do usuรกrio. Vocรช pode criar uma sub-rotina que limpe o conteรบdo das caixas de texto. Uma sub-rotina de chamada VBA รฉ apropriada nesse cenรกrio porque vocรช nรฃo deseja retornar nenhum resultado.

Por que usar sub-rotinas

  • Divida o cรณdigo em um pequeno cรณdigo gerenciรกvel: Um programa de computador mรฉdio possui milhares e milhares de linhas de cรณdigo-fonte. Isso introduz complexidade. As sub-rotinas ajudam a resolver esse problema, dividindo o programa em pequenos pedaรงos de cรณdigo gerenciรกveis.
  • Reutilizaรงรฃo de cรณdigo. Digamos que vocรช tenha um programa que precisa acessar o banco de dados, quase todas as janelas do programa precisarรฃo interagir com o banco de dados. Em vez de escrever cรณdigo separado para essas janelas, vocรช pode criar uma funรงรฃo que lide com todas as interaรงรตes do banco de dados. Vocรช pode entรฃo chamรก-lo de qualquer janela que desejar.
  • Sub-rotinas e funรงรตes sรฃo autodocumentadas. Digamos que vocรช tenha uma funรงรฃo calculaLoanInterest e outra que diz connectToDatabase. Apenas olhando o nome da sub-rotina/funรงรฃo, o programador serรก capaz de dizer o que o programa faz.

Regras de nomenclatura de sub-rotinas e funรงรตes

Para usar sub-rotinas e funรงรตes, existem um conjunto de regras que devem ser seguidas.

  • Uma sub-rotina ou nome de funรงรฃo de chamada VBA nรฃo pode conter espaรงo
  • Uma subchamada VBA do Excel ou nome de funรงรฃo deve comeรงar com uma letra ou sublinhado. Nรฃo pode comeรงar com um nรบmero ou caractere especial
  • Uma sub-rotina ou nome de funรงรฃo nรฃo pode ser uma palavra-chave. Uma palavra-chave รฉ uma palavra que tem um significado especial em VBA. Palavras como Private, Sub, Function e End, etc. sรฃo exemplos de palavras-chave. O compilador os utiliza para tarefas especรญficas.

Sintaxe de sub-rotina VBA

Vocรช precisarรก habilitar a guia Desenvolvedor no Excel para acompanhar este exemplo. Se vocรช nรฃo sabe como ativar a guia Desenvolvedor, leia o tutorial em VBA Operatoros

AQUI na sintaxe,

Private Sub mySubRoutine(ByVal arg1 As String, ByVal arg2 As String)
    'do something
End Sub

Explicaรงรฃo da sintaxe

Code Aรงรฃo
  • โ€œSub privada minhaSubRoutine(โ€ฆ)โ€
  • Aqui a palavra-chave โ€œSubโ€ รฉ usada para declarar uma sub-rotina chamada โ€œmySubRoutineโ€ e iniciar o corpo da sub-rotina.
  • A palavra-chave Private รฉ usada para especificar o escopo da sub-rotina
  • โ€œByVal arg1 como string, ByVal arg2 como stringโ€:
  • Ele declara dois parรขmetros de tipo de dados string nome arg1 e arg2
  • โ€œFim Subโ€
  • โ€œEnd Subโ€ รฉ usado para finalizar o corpo da sub-rotina

A sub-rotina a seguir aceita o nome e o sobrenome e os exibe em uma caixa de mensagem.

Agora vamos programar e executar este Subprocedimento. Vamos ver isso.

Como chamar Sub em VBA

Abaixo estรก um processo passo a passo sobre como chamar Sub em VBA:

  1. Projete a interface do usuรกrio e defina as propriedades dos controles do usuรกrio.
  2. Adicione a sub-rotina
  3. Escreva o cรณdigo do evento de clique para o botรฃo de comando que chama a sub-rotina
  4. Teste o aplicativo

Passo 1) Interface de Usuรกrio

Projete a interface do usuรกrio conforme mostrado na imagem abaixo.

Como chamar Sub em VBA

Defina as seguintes propriedades. As propriedades que estamos definindo:

S / N Controlar Propriedade Valor
1 BotรฃoComando1 Nome btnDisplayFullName
2 Subtรญtulo Sub-rotina de nome completo


Sua interface agora deve ter a seguinte aparรชncia.

Como chamar Sub em VBA

Passo 2) Adicionar sub-rotina

  1. Pressione Alt + F11 para abrir a janela de cรณdigo
  2. Adicione a seguinte sub-rotina
Private Sub displayFullName(ByVal firstName As String, ByVal lastName As String)
    MsgBox firstName & " " & lastName
End Sub

AQUI no cรณdigo,

Code Aรงรฃo
  • โ€œSub display privadoFullName(โ€ฆ)โ€
  • Ele declara uma sub-rotina privada displayFullName que aceita dois parรขmetros de string.
  • โ€œByVal primeiro nome como string, ByVal sobrenome como stringโ€
  • Ele declara duas variรกveis โ€‹โ€‹de parรขmetro firstName e lastName
  • MsgBox primeiro nome, ultimo nome"
  • Ele chama a mensagemBox funรงรฃo interna para exibir uma caixa de mensagem. Em seguida, passa as variรกveis โ€‹โ€‹'firstName' e 'lastName' como parรขmetros.
  • O e comercial โ€œ&โ€ รฉ usado para concatenar as duas variรกveis โ€‹โ€‹e adicionar um espaรงo vazio entre elas.

Passo 3) Chamando a sub-rotina

Chamar a sub-rotina a partir do evento de clique do botรฃo de comando.

  • Clique com o botรฃo direito no botรฃo de comando conforme mostrado na imagem abaixo. Selecione Exibir cรณdigo.
  • O editor de cรณdigo serรก aberto

Como chamar Sub em VBA

Adicione o seguinte cรณdigo no editor de cรณdigo para o evento click do botรฃo de comando btnDisplayFullName.

Private Sub btnDisplayFullName_Click()
    displayFullName "John", "Doe"
End Sub

Sua janela de cรณdigo agora deve ter a seguinte aparรชncia

Como chamar Sub em VBA

Salve as alteraรงรตes e feche a janela de cรณdigo.

Passo 4) Testando o cรณdigo

Na barra de ferramentas do desenvolvedor, desative o modo de design. Como mostrado abaixo.

Como chamar Sub em VBA

Passo 5) Clique no botรฃo de comando 'Sub-rotina FullName'.

Vocรช obterรก os seguintes resultados

Como chamar Sub em VBA

Baixe o cรณdigo Excel acima

Resumo

  • Uma sub-rotina รฉ um trecho de cรณdigo que executa uma tarefa especรญfica. Uma sub-rotina nรฃo retorna um valor apรณs a execuรงรฃo
  • As sub-rotinas oferecem capacidade de reutilizaรงรฃo de cรณdigo
  • As sub-rotinas ajudam a dividir grandes pedaรงos de cรณdigo em pequenos cรณdigos gerenciรกveis.

Resuma esta postagem com: