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.
O que você vai aprender aqui?
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:
- Abrir o ambiente VBA no Excel.
- Inserir um módulo, onde o código será escrito.
- 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.

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.

No menu, clique em Inserir > Módulo.

Uma janela em branco vai se abrir, onde vamos digitar a função.
Código da Function em 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.
- Comparar, através de uma função If:
Simples, eficiente e automatizado!
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.
=calcularBonus(B2;$G$2:$H$11)
O Excel vai calcular automaticamente o bônus correto para todos os vendedores.

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!
Posts mais recentes de VBA
- Como usar o Selenium no VBA para Automatizar Buscas na WebComo usar o Selenium no VBA para automação web no Excel. Aprenda passo a passo a instalar, configurar e capturar dados online com Selenium VBA + ChromeDriver.
- Preencher um Documento em Word com VBA: Guia CompletoAprenda a preencher um documento em Word com VBA usando dados do Excel. Tutorial prático para automatizar documentos como contratos e procurações.
- Planilha para Controle de Ações e IR 2.0 – Download Grátis e Guia CompletoBaixe grátis a Planilha para Controle de Ações e IR. Organize seus investimentos, calcule Imposto de Renda e acompanhe tudo com gráficos no Excel.
Posts mais recentes da Hashtag Treinamentos
- Planilha de Controle de Notas Fiscais no Excel [Grátis]Baixe a planilha de controle de notas fiscais no Excel grátis: calcule ISS e retenções, veja o que está em aberto e gere a cobrança de cada nota de serviço.
- Qual IA usar na empresa: ChatGPT, Claude ou Perplexity?Qual IA usar na empresa: veja as diferenças entre ChatGPT, Claude e Perplexity e quando cada um rende mais em cada área da sua equipe.
- Apostilas Gratuitas em PDF: Excel, Power BI, Python e IABaixe apostilas gratuitas em PDF de Excel, Power BI, Python, Claude e agentes de IA, com exercícios e gabarito. Escolha a sua e comece hoje.
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.







