non mi funziona sto programmino , chi vuole può dargli un occhiata

codice:
scala = Array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", " ", vbCrLf, "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "è", "à", "ù", "&", "/", "(", ")", "?", "^", "!", "$", "%", "§", "#", "-", "@")

' inseriamo il testo
testo = Me.text


'controlliamo la lunghezza del testo
lunghezza = Len(testo)


' mettiamo il testo in un array

For i = 1 To lunghezza

 y = Mid(testo, i, 1)
 
  For x = 0 To 52
  
  If y = scala(x) Then
  
  text(i) = x
  
  End If
  
  Next x
  
Next i

' calcoliamo la chiave
i = 1
Do While (i <= lunghezza)
casuale = Int((26 * Rnd) + 1)
chiave(i) = casuale
i = i + 1
Loop

' siccome con il precedente for mettiamo una sequenza casuale di numeri , trasformiamo la sequenza numerica nella
' chiave scritta


chiave_generata = ""

For i = 1 To lunghezza

chiave_generata = chiave_generata + scala(chiave(i))

 Next
 
 



' ora si calcola il testo criptato

For x = 1 To lunghezza
crypt(x) = CInt(text(x)) + CInt(chiave(x))

' per non avere spazi o invi nella chiave

If crypt(x) = 27 Then
crypt(x) = Int((26 * Rnd) + 1)
ElseIf crypt(x) = 28 Then
crypt(x) = Int((26 * Rnd) + 1)
End If
Next


' si trasforma il testo criptato(numerico) ---> testo criptato(letterale)

testo_definitivo = ""
For i = 1 To lunghezza
y = scala(crypt(i))
testo_definitivo = testo_definitivo + y
Next


Open "C:\salva.txt" For Output As #1
Print #1, "Chiave generata"; vbCrLf; "----------------------------------------- Enry_Key -----------------------------------------"; vbCrLf; vbCrLf; "|"; chiave_generata; "|"; vbCrLf; vbCrLf; vbCrLf; "--------------------------------------- End Enry_Key ---------------------------------------"; vbCrLf; vbCrLf; vbCrLf; vbCrLf; "--------------------------------------------------------------------------------------------------"; vbCrLf; "Testo criptato"; vbCrLf; "--------------------------------------------------------------------------------------------------"; vbCrLf; vbCrLf; vbCrLf; vbCrLf; "|"; testo_definitivo; "|"; ""
Close #1