Função definida pelo usuário no VBA - Como criar UDF? (Exemplos)

Função definida pelo usuário do Excel VBA (UDF)

A Microsoft oferece várias funções integradas para acelerar o trabalho no Excel. No entanto, usando a codificação VBA, podemos criar nossas próprias funções e essas funções são tecnicamente chamadas de “Funções definidas pelo usuário” (UDF). Eles também são chamados de “funções personalizadas” no Excel VBA.

Qualquer fórmula que pode ser acessada na planilha com um pedaço de código é chamada de UDF. Em termos simples, qualquer fórmula que não esteja embutida, mas disponível no Excel, é chamada de Funções Definidas pelo Usuário.

Como criar funções definidas pelo usuário?

Embora UDF seja parte de nosso módulo, eles não fazem parte de nossa subrotina regular em VBA. Isso é chamado de Procedimento de Função no VBA. Da mesma forma que iniciamos a codificação da macro com a palavra SUB, precisamos começar usando a palavra “Função”. O procedimento sub tem início e término, da mesma forma que o procedimento de função tem início e fim.

Exemplo # 1 - Criar uma função de soma UDF simples

Criaremos nossa própria função SUM no Excel somando dois números.

  • Para iniciar a codificação, inicie a palavra “Função” em um dos módulos.
  • Da mesma forma que nomeamos a macro de maneira semelhante, também precisamos dar um nome à nossa Função. Este nome é usado como um nome de fórmula.

Ao contrário da sub-rotina, não podemos simplesmente pressionar Enter para criar um procedimento, mas precisamos mencionar os argumentos aqui.

Por exemplo, observe a sintaxe abaixo da função SUM da planilha.

Número 1, Número 2 são argumentos da função SUM.

  • Da mesma forma, precisamos mencionar nossos argumentos.

Aqui, declarei os argumentos como “x como inteiro” e “y como inteiro”. Visto que adicionamos um valor numérico, precisamos atribuir o tipo de dados apenas como um tipo de dados numéricos.

Depois de declarar os argumentos, atribuí o tipo de retorno do Inteiro também porque o resultado dado pela Função “OurSum” também é um valor numérico.

  • Agora, dentro da função, precisamos mencionar a fórmula que vamos usar. Aqui, precisamos usar a função para começar.

Mencionamos que o nome da fórmula “ OurSum ” deve adicionar x e y.

  • Ok, salve o código e vá para a planilha.
  • Eu digitei alguns números aqui. Abra o sinal de igual e comece a digitar OurSum. Você pode ver o nome da fórmula aparecendo aqui.
  • Da mesma forma que selecionamos células, selecionamos duas células separadamente.
  • Após selecionar duas células, pressione a tecla Enter para obter os resultados.

Portanto, funciona exatamente da mesma forma que nossa função SUM normal.

  • Ok, agora vou mudar os números.
  • Agora, novamente, aplicarei a função que criamos.

Oh !!! Obtivemos valores de erro, exceto para a primeira célula.

Você deve estar pensando no motivo de termos um erro.

Se você observar a célula A2 e B2, temos os valores 48170 e 21732. Como atribuímos o tipo de dados como Inteiro, ele não pode conter nenhum número superior a 32767. Este é o motivo pelo qual obtemos o erro do Excel como #NUM !.

Agora vou adicionar números inferiores a 32.767.

Na imagem acima, todos os números são inteiros, ou seja, menores que 32767.

Na primeira célula, obtivemos os resultados. Mas na segunda célula, ou seja, célula C2, obtivemos o valor de erro como #VALUE !.

Mesmo que os dois números sejam menores que 32767, ainda temos o erro.

Isso ocorre porque declaramos o resultado final também como Inteiro.

Portanto, quando adicionarmos 16000 e 17229, obteremos um valor como 33229, que é mais do que o limite de tipo de dados inteiro de 32767. Portanto, o resultado final é um valor de erro.

Exemplo 2 - Criar uma função para testar valores lógicos

Vamos criar mais uma função para testar os valores lógicos. Precisamos de uma função que retorne “Bom” se o número for> = 60, e precisamos do resultado como “Ruim” se o número for <= 50.

Etapa 1: inicie o procedimento de função e dê um nome ao procedimento.

Etapa 2: forneça o argumento como TestScore as Integer.

Etapa 3: Nosso resultado final deve ser “Bom” ou “Ruim”, portanto, o resultado deve estar em String.

Etapa 4: primeiro, precisamos testar se a pontuação é> = 60 ou não. Use a condição IF para testar.

Etapa 5: se a pontuação do teste for> = 60, precisamos que a função retorne o resultado como “Bom”. Portanto, TestResult = “Bom”.

Etapa 6: se a pontuação do teste for inferior a 60, o resultado da função deve ser “Ruim”.

Ok, terminamos.

  • Salve o código e vá para a planilha.

Inseri alguns números aqui como pontuação de teste.

  • Aplique a função que criamos para chegar aos resultados.
  • Selecione a célula e pressione Enter.

É disso que trata o UDF.

Artigos interessantes...