Para usar essa função no VBA, você simplesmente chama 
				GerarCNH() e ela retornará um número de CNH fictício com dígitos verificadores gerados de acordo com o algoritmo. Lembre-se de que os números gerados por esta função são apenas para fins de teste e simulação e não representam CNHs autênticas.
Function GerarCNH() As String
    Dim baseCnh As String
    Dim i As Integer
    Dim soma As Integer
    Dim peso As Integer
    Dim resto As Integer
    Dim digito1 As Integer
    Dim digito2 As Integer
    Dim cnhCompleta As String
    ' Gera os 9 primeiros dígitos da CNH de forma aleatória
    Randomize
    For i = 1 To 9
        baseCnh = baseCnh & Int(Rnd() * 10)
    Next i
    ' Calcula o primeiro dígito verificador
    soma = 0
    peso = 9
    For i = 1 To 9
        soma = soma + CInt(Mid(baseCnh, i, 1)) * peso
        peso = peso - 1
    Next i
    resto = soma Mod 11
    digito1 = IIf(resto = 10, 0, resto)
    ' Adiciona o primeiro dígito ao final da base da CNH
    baseCnh = baseCnh & digito1
    ' Calcula o segundo dígito verificador
    soma = 0
    peso = 1
    For i = 1 To 9
        soma = soma + CInt(Mid(baseCnh, i, 1)) * peso
        peso = peso + 1
    Next i
    resto = soma Mod 11
    digito2 = IIf(resto = 10, 0, resto)
    ' Completa a CNH com os dois dígitos verificadores
    cnhCompleta = baseCnh & digito2
    ' Retorna a CNH completa
    GerarCNH = cnhCompleta
End Function
								Caso queira receber esse arquivo Excel, contendo essa função, é só enviar um e-mail 
solicitando para o endereço 
marmitanao@gmail.com