Espero q ajude!
'Num módulo:
Public Function FU_ValidaCPF(CPF As String) As Boolean
Dim soma As Integer
Dim Resto As Integer
Dim i As Integer
'Valida argumento
If Len(CPF) <> 11 Then
FU_ValidaCPF = False
Exit Function
End If
soma = 0
For i = 1 To 9
soma = soma + Val(Mid$(CPF, i, 1)) * (11 - i)
Next i
Resto = 11 - (soma - (Int(soma / 11) * 11))
If Resto = 10 Or Resto = 11 Then Resto = 0
If Resto <> Val(Mid$(CPF, 10, 1)) Then
FU_ValidaCPF = False
Exit Function
End If
soma = 0
For i = 1 To 10
soma = soma + Val(Mid$(CPF, i, 1)) * (12 - i)
Next i
Resto = 11 - (soma - (Int(soma / 11) * 11))
If Resto = 10 Or Resto = 11 Then Resto = 0
If Resto <> Val(Mid$(CPF, 11, 1)) Then
FU_ValidaCPF = False
Exit Function
End If
FU_ValidaCPF = True
End Function
'P/ chamar:
Dim RET as Boolean
RET = FU_ValidaCPF "518.284.565-28" 'É APENAS um Exemplo!
If RET = True Then
'O CPF é válido
Else
'O CPF NÃO é válido
End If