VBA Function: Como Criar Funções no VBA para Automatizar Seu Trabalho

Aprenda como criar uma VBA Function no Excel para automatizar tarefas, calcular bônus e facilitar seu dia a dia. Tutorial passo a passo com exemplos práticos.

Uma VBA Function é um procedimento que retorna um valor e pode ser usada como uma fórmula personalizada dentro do Excel. Você a cria no editor do VBA (Alt+F11) com a estrutura Function Nome(argumentos) ... End Function, atribuindo o resultado ao nome da função. Depois, basta chamá-la em uma célula como qualquer fórmula nativa.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

VBA Function – Funções no VBA

Você sabe como criar uma VBA Function? Neste artigo, vou te mostrar, passo a passo, como criar uma função no VBA para automatizar tarefas e facilitar seu trabalho no Excel.

Assim, você ganha produtividade e evita processos manuais repetitivos.

Vamos criar uma Function que calcula o bônus de vendas com base em uma tabela, utilizando estruturas como For e If. Bora lá?

O que é uma VBA Function?

Uma VBA Function é uma função personalizada que você cria no VBA (Visual Basic for Applications) e que pode ser usada como qualquer outra função padrão do Excel, como SOMA, MÉDIA ou SE.

Isso significa que você pode criar suas próprias funções para resolver problemas específicos e tornar suas planilhas muito mais eficientes.

Por que Criar Funções no VBA?

Criar uma VBA Function permite que você:

  • Automatize tarefas repetitivas
  • Torne processos mais rápidos e organizados
  • Evite fórmulas longas e complexas no Excel
  • Reaproveite código em diferentes planilhas

Hoje vamos criar uma função no VBA que calcula o bônus de vendas de acordo com uma tabela de faixas, evitando o uso de várias funções SE ou SES no Excel.

Como Criar uma VBA Function no Excel

Criar uma VBA Function é mais simples do que parece! O processo envolve três passos principais:

  1. Abrir o ambiente VBA no Excel.
  2. Inserir um módulo, onde o código será escrito.
  3. Escrever a função e, depois, usá-la normalmente na planilha.

Agora que você já sabe o caminho, vamos ver tudo isso na prática com um exemplo real: uma Function para calcular o bônus de vendas!

Exemplo Prático: Cálculo de Bônus com VBA Function

No nosso exemplo, temos uma tabela com os vendedores de uma empresa e suas respectivas vendas. Além disso, uma tabela auxiliar indica o percentual de bônus que cada vendedor recebe conforme o valor vendido.

Tabela de vendas e bônus

Por Exemplo:
O Alon vendeu R$ 97.500. Pela tabela de bônus, quem vende até R$ 100.000 ganha 40%. Logo, o bônus dele será de R$ 39.000.

Vamos criar uma função VBA para fazer esse cálculo automaticamente e poder aplicá-la em toda a tabela.

Inserindo um Módulo no VBA

Para criar a nossa VBA Function, siga os passos abaixo:

No Excel, pressione Alt + F11 para abrir o ambiente VBA ou vá até a guia Desenvolvedor e clique em Visual Basic.

Menu VBA Basic no Excel

No menu, clique em Inserir > Módulo.

Inserir Módulo no Visual Basic

Uma janela em branco vai se abrir, onde vamos digitar a função.

Código da Function em VBA:

VBA
Function calcularBonus(valorVenda As Double, intervaloBonus As Range) As Double

    nLinhas = intervaloBonus.Rows.Count

    For i = 1 To nLinhas
        If valorVenda <= intervaloBonus(i, 1) Then
            percentualBonus = intervaloBonus(i, 2)
            Exit For
        End If
    Next

    calcularBonus = percentualBonus * valorVenda

End Function
  • Criamos a Function chamada calcularBonus com dois argumentos: o valorVenda, o valor de vendas a ser analisado (um número do tipo Double), e o intervaloBonus, um intervalo de células com a tabela bônus (tipo Range).
  • A variável nLinhas recebe a contagem de linhas contida no intervaloBonus, que será um intervalo de células (conterá diversas linhas e/ou colunas)
  • Utilizamos uma estrutura de repetição do tipo For para percorrer cada linha, que vai da 1 até a linha representada por nLinhas e, para cada uma, fazer as seguintes ações:
    • Comparar, através de uma função If:
      • Se o valorVenda passado para a função for menor ou igual ao valor da linha representada pela variável “i”, da 1ª coluna da matriz intervaloBonus, a variável percentualBonus vai assumir o valor da 2ª coluna da matriz intervaloBonus da mesma linha
      • Analisando linha a linha, quando encontrar um valor menor ou igual e achar o percentualBonus respectivo, vamos usar a instrução de saída para abortar a estrutura de repetição, porque já obtemos nosso resultado
    • Por fim, a função retorna o cálculo: percentualBonus * valorVenda. Essa expressão vai, de fato, ser retornada como resposta no Excel, ou dentro do VBA, ao chamarmos essa Function.

Simples, eficiente e automatizado!

Ícone VBAVBA Impressionador

Como automatizar praticamente qualquer tarefa repetitiva que você faça dentro do Excel. Aprenda a criar integrações do Excel com o PowerPoint, Word, Outlook e muito mais. Aprenda a criar automações para resolver tudo com apenas um clique em um botão. Tudo isso com uma única linguagem que junta todos esses programas.

Começar agoraSeta para a direita
Fundo VBATelas VBA

Como Usar a VBA Function no Excel

Agora que criamos a função, é só usá-la direto na planilha, como faria com qualquer função do Excel.

Codigo
=calcularBonus(B2;$G$2:$H$11)
Aplicando a VBA Function no Excel

O Excel vai calcular automaticamente o bônus correto para todos os vendedores.

Resultado calculado automaticamente com a VBA Function

O que Você Aprendeu sobre VBA Function

1. O que é uma VBA Function?

É uma função personalizada criada no VBA para realizar tarefas automatizadas ou cálculos específicos no Excel.

2. Qual a diferença entre Function no VBA e Sub?

  • Sub: executa uma ação, mas não retorna um valor.
  • Function: executa uma ação e retorna um valor, podendo ser usada diretamente nas células do Excel.

3. Posso usar uma Function VBA fora do Excel?

Não. As VBA Functions são específicas para aplicações que suportam VBA, como Excel, Word ou Access.

Conclusão – Criando Funções Personalizadas no VBA

Hoje você aprendeu o que é uma VBA Function e como criar uma para automatizar cálculos no Excel. Viu como esse recurso facilita seu dia a dia, evitando fórmulas enormes e melhorando a produtividade?

Com as Functions, você pode criar soluções sob medida, assim como as funções nativas como SOMA, MÉDIA, SE e PROCV.

Hashtag Treinamentos

Para acessar outras publicações de VBA, clique aqui!


Quer aprender mais sobre VBA com um minicurso básico gratuito?

Posts mais recentes de VBA

Posts mais recentes da Hashtag Treinamentos

1. Qual a diferença entre Function e Sub no VBA?

Uma Function retorna um valor e pode ser usada como fórmula em uma célula ou dentro de outro código. Uma Sub executa ações (como formatar ou mover dados), mas não retorna um valor para ser usado em uma fórmula.

2. Como criar uma função personalizada no Excel com VBA?

Abra o editor com Alt+F11, insira um módulo e escreva Function Nome(argumentos), atribuindo o resultado ao nome da função antes do End Function. Salve a pasta como .xlsm e chame a função em uma célula.

3. Como usar a VBA Function em uma célula?

Depois de criada, digite o nome da função na célula como se fosse uma fórmula nativa, por exemplo =MinhaFuncao(A1). O Excel calcula e retorna o valor, atualizando quando os argumentos mudam.

4. Preciso salvar o arquivo em algum formato especial?

Sim. Para manter as macros e funções, salve a pasta de trabalho no formato .xlsm (habilitado para macros). No formato .xlsx padrão o código VBA é descartado ao fechar o arquivo.