Embora o Excel já tenha centenas de funções internas, como SUM, VLOOKUP, LEFT e assim por diante, as funções internas disponíveis geralmente não são suficientes para realizar tarefas bastante complexas. No entanto, não se preocupe porque você só precisa criar as funções necessárias.
Etapa
Etapa 1. Crie uma nova pasta de trabalho ou abra a pasta de trabalho que deseja processar com Funções Definidas pelo Usuário (UDF)
Etapa 2. Abra o Editor do Visual Basic no Microsoft Excel via Ferramentas-> Macro-> Editor do Visual Basic (ou pressione o atalho Alt + F11)
Etapa 3. Clique no botão Módulo para adicionar um novo módulo à sua planilha
Você pode criar uma UDF em uma pasta de trabalho sem adicionar um novo módulo, mas a função não funcionará em outras planilhas da mesma pasta de trabalho.
Etapa 4. Crie a "cabeça" ou "protótipo" da sua função
O protótipo da função deve seguir a seguinte estrutura:
função pública "Nome da Função" (parâmetro1 Como tipo1, parâmetro2 Como tipo2) Como tipo de resultado.
Os protótipos podem ter tantas funções quanto possível e seus tipos podem ser todos os tipos de dados básicos ou tipos de objeto do Excel na forma de intervalo. Você pode pensar nos parâmetros como “operantes” (operadores) sobre os quais a função atuará. Por exemplo, ao escrever SIN (45) para calcular o seno de 45 graus, o número 45 será considerado um parâmetro. Em seguida, o código de função usará esses valores para realizar cálculos e exibir os resultados.
Etapa 5. Adicione o código da função para garantir que você: 1) use o valor fornecido pelo parâmetro; 2) passe o resultado para o nome da função; e 3) feche a função com a frase "função final". Aprender a programar em VBA ou em qualquer outro idioma leva muito tempo e leva orientações detalhadas. Felizmente, essas funções geralmente têm pequenos blocos de código e não fazem muito uso dos recursos da linguagem de programação. Aqui estão alguns elementos da linguagem VBA que podem ser usados:
- O bloco If (if), que permite que você execute uma parte do código apenas se a condição for atendida. Como um exemplo:
- . Você pode omitir a palavra-chave Else junto com a segunda parte do código, pois é opcional.
- O bloco Do (do), que executa uma parte do código While ou Until quando ou até que a condição seja atendida. Como um exemplo:
- . Observe também a segunda linha que "declara" a variável. Você pode adicionar variáveis ao seu código para uso posterior. As variáveis atuam como valores temporários no código. Finalmente, considere a declaração da função como BOOLEANO, que é um tipo de dados que permite apenas valores TRUE ou FALSE. Esse método de determinar os números primos está longe de ser ideal, mas o código foi escrito de forma que seja fácil de ler.
- Para o bloco (para), que executa uma certa quantidade de código. Como um exemplo:
- Um valor constante digitado diretamente na fórmula da célula. Neste caso, o texto (string) deve ser colocado entre aspas.
- Referências de células, por exemplo B6 ou alcance como A1: C3 (o parâmetro deve ser do tipo de dados “Range”)
-
Outra função que está incluída em sua função (sua função também pode estar incluída em outra função), por exemplo: = Fatorial (MAX (D6: D8))
Etapa 7. Certifique-se de que os resultados estejam corretos
Use-o várias vezes para se certificar de que a função é capaz de lidar com vários valores de parâmetros corretamente:
Pontas
- Ao escrever blocos de código em estruturas de controle como If, For, Do, etc., certifique-se de recuar (inserir a borda da linha esquerda ligeiramente para dentro) o bloco de código pressionando a barra de espaço várias vezes ou tab. Isso tornará o código mais fácil de entender e os erros serão muito mais fáceis de encontrar. Além disso, o aumento da funcionalidade se torna mais fácil de fazer.
- Se você não sabe como escrever código para funções, leia o artigo Como escrever uma macro simples no Microsoft Excel.
- Às vezes, as funções não precisam de todos os parâmetros para calcular o resultado. Nesse caso, você pode usar a palavra-chave opcional antes do nome do parâmetro no cabeçalho da função. Você pode usar a função IsMissing (parameter_name) em seu código para determinar se um parâmetro é atribuído a um valor ou não.
- Use nomes não usados como funções no Excel para que nenhuma função seja substituída ou excluída.
- O Excel tem muitas funções integradas e a maioria dos cálculos podem ser executados usando essas funções integradas, individualmente ou de uma vez. Certifique-se de dar uma olhada na lista de funções disponíveis antes de começar a programar. A execução pode ser feita mais rapidamente se você usar funções integradas.
Aviso
- Por motivos de segurança, muitas pessoas desabilitam macros. Certifique-se de notificar os destinatários da pasta de trabalho que a pasta de trabalho enviada contém macros e que essas macros não danificarão seus computadores.
- A função usada neste artigo não é a melhor maneira de resolver o problema relacionado. O exemplo é usado para explicar o uso de estruturas de controle de linguagem.
- VBA, como outras linguagens, tem várias outras estruturas de controle além de Do, If e For. A estrutura discutida aqui descreve apenas o que pode ser feito no código-fonte da função. Existem muitos guias na Internet que podem ser usados para ajudá-lo a aprender VBA.
Resultado do curso de função pública (como valor inteiro) como string
Se o valor> = 5 então
Resultados do curso = "Aceito"
Outro
Resultados do curso = "Rejeitado"
Fim se
Função Final
Observe os elementos no bloco de código If:
IF condição THEN código ELSE código END IF
Função pública BilPrima (value As Integer) As Boolean
Dim i As Integer
i = 2
BilPrima = True
Fazer
Se valor / i = Int (valor / i) Então
BilPrima = False
Fim se
i = i + 1
Loop While i <value And NumberPrima = True
Função Final
Olhe novamente para os elementos:
Código DO LOOP ENQUANTO / ATÉ A condição
Fatorial de função pública (valor As Integer) As Long
Resultados escuros enquanto
Dim i As Integer
Se valor = 0 então
resultado = 1
ElseIf value = 1 Then
resultado = 1
Outro
resultado = 1
Para i = 1 para valor
resultado = resultado * i
Próximo
Fim se
Fatorial = resultado
Função Final
Olhe novamente para os elementos:
Variável FOR = limite inferior TO limite superior do código PRÓXIMO
. Além disso, observe o elemento ElseIf adicional na instrução If, que permite adicionar mais opções ao código que está sendo executado. Finalmente, considere a função “resultado” e a variável declarada como Longa. O tipo de dados Long permite valores muito maiores do que Integer.
Abaixo é mostrado o código de uma função que converte pequenos números em palavras.
Etapa 6. Retorne à pasta de trabalho e use a função escrevendo o símbolo de “igual” (=) seguido do nome da função na célula
Escreva os colchetes de abertura (“(“) após o nome da função, usando o sinal coma para separar os parâmetros e terminar com colchetes de fechamento (“)”). Como um exemplo:
= NumberToLetter (A4)
. Você também pode usar fórmulas caseiras pesquisando-as em categorias Usuário definido dentro da opção Inserir fórmula. Você acabou de clicar no botão Fx à esquerda da barra de fórmulas. Existem três tipos de formulários de parâmetro em funções: