Function cpf_Validation (ByVal sCPF As String) As Boolean
Dim sVerificador1 As String ' Armazena os dois dígitos verificadores originais do CPF
Dim sVerificador2 As String ' Armazena os dois dígitos verificadores calculados
Dim i As Integer ' Variável de controle para os loops
Dim lOffset As Integer ' Multiplicador inicial para os cálculos
Dim lTotal As Long ' Soma dos produtos para cálculo do dígito verificador
' Remove caracteres não numéricos do CPF
sCPF = Replace(sCPF, ".", "")
sCPF = Replace(sCPF, "-", "")
sCPF = Replace(sCPF, " ", "")
' Verifica se o CPF possui exatamente 11 caracteres e se é numérico
If Len(sCPF) <> 11 Or Not IsNumeric(sCPF) Then
cpf_Validation = False
Exit Function
End If
' Captura os dois dígitos verificadores originais
sVerificador1 = Right(sCPF, 2)
' Mantém apenas os primeiros 9 dígitos para calcular os verificadores
sCPF = Left(sCPF, 9)
' Loop para calcular os dois dígitos verificadores
Do While Len(sCPF) < 11
lOffset = 2 ' Inicia o multiplicador em 2
lTotal = 0 ' Zera a soma total
' Calcula a soma dos produtos entre cada dígito e seu respectivo multiplicador
For i = Len(sCPF) To 1 Step -1
lTotal = lTotal + (CInt(Mid(sCPF, i, 1)) * lOffset)
lOffset = lOffset + 1
Next i
' Calcula o dígito verificador com base na soma
Dim digito As Integer
digito = 11 - (lTotal Mod 11)
If digito >= 10 Then digito = 0
' Adiciona o dígito verificador ao CPF
sCPF = sCPF & CStr(digito)
Loop
' Captura os dois dígitos verificadores calculados
sVerificador2 = Right(sCPF, 2)
' Compara os dígitos verificadores originais com os calculados
cpf_Validation = (sVerificador1 = sVerificador2)
End Function
CLIQUE AQUI e nos contate via What's App para avaliarmos seu projeto