Se você acompanha o site há bastante tempo sabe que o Excel é cheeeeio de funções, certo? Sempre aprendemos coisas novas e descobrimos que ele pode fazer umas coisas que a gente nem imaginava. Nenhuma novidade caso lembremos que ele possui cerca de 500 fórmulas prontinhas para uso.

Porém, se você é um usuario de Excel mais avançado e precisa de coisas mais elaboradas pode ser que já tenha se deparado com algo que não existe nativamente, ou seja, que "não vem de fábrica". Nesse caso começamos a juntar fórmulas, misturar um =Se() com um =E() mais um =Procv(), etc. ou, começamos a usar das macros para criar algo específico para aquela situação.

Mas e se você precisa usar constantemente tal recurso, será que não vai ficar perdendo tempo replicando a macro nas diferentes planilhas a cada vez que for usá-la em um arquivo diferente? Pois bem, aqui está a solução: Você pode criar a sua própria função de Excel.

Sim, isso mesmo. Você pode criar uma fórmula onde será definido os argumentos de entrada necessários e o cálculo interno para que seja exibida uma saída. Agora não tem mais aquela desculpa de que "eu só não fiz porque não existe uma fórmula para isso".

Pois bem. Você vai precisar de apenas uma coisa: Conhecimentos em VBA, afina estamos programando uma fórmula. Viu que bacana? Você é quase um funcionário da Microsoft.

Criando uma função

Ok, mas então como criar uma função personalizada? Veremos isso a partir de agora. O código que você verá abaixo foi extraído do site Guia do Excel e cada linha está explicada com a sua respectiva ação.

Mas antes de passarmos o código a limpo você precisa saber onde colocar ele, certo? A resposta é em um módulo. Aperte Alt+ F11 para entrar na janela de edições de código e então clique com o botão direito no seu projeto, em seguida vá até Inserir e depois em Módulo.

Inserindo um módulo no projeto
Inserindo um módulo no projeto

Na caixinha que exibir colo o código abaixo (repare que as linhas com explicações começam com uma aspa simples e ficam com a cor verde após inseridas no Excel).

'Função que valida CPF
Public Function ValidaCPF(ByVal lNumCPF As String) As Boolean
    Application.Volatile
    
    Dim lMultiplicador  As Integer
    Dim lDv1            As Integer
    Dim lDv2            As Integer
    
    lMultiplicador = 2
    
    'Realiza o preenchimento dos zeros à esquerda já que o Excel remove os zeros à esquerda por padrão
    lNumCPF = String(11 - Len(lNumCPF), "0") & lNumCPF
    
    'Realiza o cálculo do dividendo para o dv1 e o dv2
    For i = 9 To 1 Step -1
        lDv1 = (Mid(lNumCPF, i, 1) * lMultiplicador) + lDv1
        lDv2 = (Mid(lNumCPF, i, 1) * (lMultiplicador + 1)) + lDv2
        lMultiplicador = lMultiplicador + 1
    Next
    
    'Realiza o cálculo para chegar no primeiro dígito
    lDv1 = lDv1 Mod 11
    If lDv1 >= 2 Then
        lDv1 = 11 - lDv1
    Else
        lDv1 = 0
    End If
    
    'Realiza o cálculo para chegar no segundo dígito
    lDv2 = lDv2 + (lDv1 * 2)
    lDv2 = lDv2 Mod 11
    
    If lDv2 >= 2 Then
        lDv2 = 11 - lDv2
    Else
        lDv2 = 0
    End If
    
    'Realiza a validação e retorna na função
    If Right(lNumCPF, 2) = CStr(lDv1) & CStr(lDv2) Then
        ValidaCPF = True
    Else
        ValidaCPF = False
    End If
    
End Function

Caso você queira saber como funciona a validação de CPF nos seus mínimos detalhes recomendo que leia este post aqui onde explicamos o passo a passo, afinal CPF é uma combinação de números que tem um sentido lógico. 

Pronto já está criada a nossa função.

Como usar?

Ok, sua função já está criada e tudo mais, mas como usá-la? Fácil, afinal você já está acostumado ao processo. Sim, pois chamar uma função por você é o mesmo processo de chamar qualquer outra função do Excel.

Você reparou que na primeira linha de código definimos "Public Function ValidaCPF" ? Pois bem, esse é o nome da nossa fórmula criada. Agora é só ir até o Excel e digitar o sinal de igual para entrar com uma fórmula e digitar esse nome que definimos para a função verificadora de CPF.

Repare no print abaixo que eu adicionei alguns exemplos de CPF, tanto alguns que estão corretos como alguns que eu criei aleatoriamente. Para usar a função que criamos é só passar o CPF a ser verificado como argumento da função.

Resultado após aplicar a função aos nossos CPFs
Resultado após aplicar a função aos nossos CPFs

Pronto agora você tem uma fórmula personalizada e funcional aí no seu Excel. O próximo passo é ir até onde sua criatividad te levar.

Formatação

Passo extra: Talvez você tenha reparado que o meu CPF inserido nos exemplos estão bonitinhos e com a formatação correta de pontos e hífen, certo? Para fazer com que os seus números inseridos tenham o mesmo estilo é bem simples:

Se você quer formatar os dados no formato de Cadastro de Pessoa Física usado aqui no Brasil, pode fazer o seguinte: Clique na célula com os dados a serem formatados, clique com o botão direito e vá em "Formatar células..." ou então, apenas a selecione e aperte o atalho Ctrl + 1.

d

Abrirá a janela de personalização. Nela vamos navegar até a guia "Personalizado" no lado esquerdo e em "tipo:" cole o código 000"."000"."000-00 

Pronto, as células que receberam este código já estão no formato CPF.