Estas funcoes utilizam um maskeditbox com a formatacao ilustrada em cada instrucao if.
Voce chama a funcao passando o cpf ou cnpj e pega o retorno por exemplo:
if verifica_cpf(txtcpf.text) = false then
msgbox "CPF invalido"
exit sub
endif
' Função de verificação de CNPJ
Function Verifica_CNPJ(CNPJ As String) As Boolean
' Verifica se o CNPJ foi digitado
If CNPJ <> "__.___.___/____-__" Then
' Se o CPF foi digitado verifica se foi digitado por completo
If Mid(CNPJ, 1, 1) = "_" Or Mid(CNPJ, 2, 1) = "_" Or _
Mid(CNPJ, 4, 1) = "_" Or Mid(CNPJ, 5, 1) = "_" Or _
Mid(CNPJ, 6, 1) = "_" Or Mid(CNPJ, 8, 1) = "_" Or _
Mid(CNPJ, 9, 1) = "_" Or Mid(CNPJ, 10, 1) = "_" Or _
Mid(CNPJ, 12, 1) = "_" Or Mid(CNPJ, 13, 1) = "_" Or _
Mid(CNPJ, 14, 1) = "_" Or Mid(CNPJ, 15, 1) = "_" Or _
Mid(CNPJ, 17, 1) = "_" Or Mid(CNPJ, 18, 1) = "_" Then
Verifica_CNPJ = False
Exit Function
End If
Dim Digito As Integer 'Declaração de variáveis
' Cálculo do 1º dígito verificador
Digito = 11 - (((Mid(CNPJ, 1, 1) * 5) + _
(Mid(CNPJ, 2, 1) * 4) + _
(Mid(CNPJ, 4, 1) * 3) + _
(Mid(CNPJ, 5, 1) * 2) + _
(Mid(CNPJ, 6, 1) * 9) + _
(Mid(CNPJ, 8, 1) * 8) + _
(Mid(CNPJ, 9, 1) * 7) + _
(Mid(CNPJ, 10, 1) * 6) + _
(Mid(CNPJ, 12, 1) * 5) + _
(Mid(CNPJ, 13, 1) * 4) + _
(Mid(CNPJ, 14, 1) * 3) + _
(Mid(CNPJ, 15, 1) * 2)) Mod 11)
If Digito > 9 Then 'Se dígito encontrado maior
Digito = 0 'que nove Dígito = 0
End If
If Digito <> Val(Mid(CNPJ, 17, 1)) Then
' Se o 1º dígito encontrado for diferente do CNPJ,
'retorna CNPJ inválido e encerra a função
Verifica_CNPJ = False
Exit Function
End If
' Cálculo do 2º dígito verificador
Digito = 11 - (((Mid(CNPJ, 1, 1) * 6) + _
(Mid(CNPJ, 2, 1) * 5) + _
(Mid(CNPJ, 4, 1) * 4) + _
(Mid(CNPJ, 5, 1) * 3) + _
(Mid(CNPJ, 6, 1) * 2) + _
(Mid(CNPJ, 8, 1) * 9) + _
(Mid(CNPJ, 9, 1) * 8) + _
(Mid(CNPJ, 10, 1) * 7) + _
(Mid(CNPJ, 12, 1) * 6) + _
(Mid(CNPJ, 13, 1) * 5) + _
(Mid(CNPJ, 14, 1) * 4) + _
(Mid(CNPJ, 15, 1) * 3) + _
(Mid(CNPJ, 17, 1) * 2)) Mod 11)
If Digito > 9 Then 'Se dígito encontrado maior
Digito = 0 'que nove Dígito = 0
End If
If Digito <> Val(Mid(CNPJ, 18, 1)) Then
' Se o 2º dígito encontrado for diferente do CNPJ retorna CNPJ inválido
Verifica_CNPJ = False
Else
' Se o 2º dígito encontrado for igual ao do CNPJ retorna CNPJ válido
Verifica_CNPJ = True
End If
Else
Verifica_CNPJ = True
End If
End Function
' Função de verificação de CPF
Function Verifica_CPF(CPF As String) As Boolean
' Verifica se o CPF foi digitado
If CPF <> "___.___.___-__" Then
' Se o CPF foi digitado verifica se foi digitado por completo
If Mid(CPF, 1, 1) = "_" Or Mid(CPF, 2, 1) = "_" Or _
Mid(CPF, 3, 1) = "_" Or Mid(CPF, 5, 1) = "_" Or _
Mid(CPF, 6, 1) = "_" Or Mid(CPF, 7, 1) = "_" Or _
Mid(CPF, 9, 1) = "_" Or Mid(CPF, 10, 1) = "_" Or _
Mid(CPF, 11, 1) = "_" Or Mid(CPF, 13, 1) = "_" Or _
Mid(CPF, 14, 1) = "_" Then
Verifica_CPF = False
Exit Function
End If
Dim Digito As Integer 'Declaração de variáveis
' Cálculo do 1º dígito verificador
Digito = 11 - (((Mid(CPF, 1, 1) * 10) + _
(Mid(CPF, 2, 1) * 9) + _
(Mid(CPF, 3, 1) * 8) + _
(Mid(CPF, 5, 1) * 7) + _
(Mid(CPF, 6, 1) * 6) + _
(Mid(CPF, 7, 1) * 5) + _
(Mid(CPF, 9, 1) * 4) + _
(Mid(CPF, 10, 1) * 3) + _
(Mid(CPF, 11, 1) * 2)) Mod 11)
If Digito > 9 Then 'Se dígito encontrado maior
Digito = 0 'que nove Dígito = 0
End If
If Digito <> Val(Mid(CPF, 13, 1)) Then
' Se o 1º dígito encontrado for diferente do CPF,
'retorna CPF inválido e encerra a função
Verifica_CPF = False
Exit Function
End If
' Cálculo do 2º dígito verificador
Digito = 11 - (((Mid(CPF, 1, 1) * 11) + _
(Mid(CPF, 2, 1) * 10) + _
(Mid(CPF, 3, 1) * 9) + _
(Mid(CPF, 5, 1) * 8) + _
(Mid(CPF, 6, 1) * 7) + _
(Mid(CPF, 7, 1) * 6) + _
(Mid(CPF, 9, 1) * 5) + _
(Mid(CPF, 10, 1) * 4) + _
(Mid(CPF, 11, 1) * 3) + _
(Mid(CPF, 13, 1) * 2)) Mod 11)
If Digito > 9 Then 'Se dígito encontrado maior
Digito = 0 'que nove Dígito = 0
End If
If Digito <> Val(Mid(CPF, 14, 1)) Then
' Se o 2º dígito encontrado for diferente do CPF retorna CPF inválido
Verifica_CPF = False
Else
' Se o 2º dígito encontrado for igual ao do CPF retorna CPF válido
Verifica_CPF = True
End If
Else
Verifica_CPF = True
End If
End Function