Ao criar esta função, minha única preocupação
foi chegar à validade do CNPJ usando o mínimo
de programação. Se você quiser pode incluir o código
para tratar o CNPJ, eliminando caracteres inválidos
e testando o tamanho, que deve ter 14 digitos.
A grande sacada para eliminar programação
excessiva foi o uso da variável que eu chamei de ftmt
(fator de multiplicação).
Qualquer dúvida: csystems@ig.com.br (Joel
Oliveira)
Function ValidaCNPJ(CNPJ)
Dim
Digito(14), nrDig, Soma(1), Resultado(1), ftmt
ftmt="6543298765432"
for
nrDig=1 to 14
Digito(nrDig)=cint(mid(CNPJ,nrDig,1))
if nrdig<=12 then soma(0)=soma(0)+digito(nrDig)*cint(mid(ftmt,nrDig+1,1))
if nrdig<=13 then soma(1)=soma(1)+digito(nrDig)*cint(mid(ftmt,nrDig,1))
next
for
nrDig=0 to 1
resultado(nrdig) = soma(nrdig) mod 11
if Resultado(nrDig)=0 or Resultado(nrDig)=1 then
ValidaCNPJ = ( Digito(13+nrDig) = 0
)
else
ValidaCNPJ = ( Digito(13+nrDig) = (11-Resultado(nrDig))
)
end if
if not ValidaCNPJ then exit for
next
end function