codice:
Risultato = CStr(TextBox2.Text)
Il codice di cui sopra non ha senso logico: converti in stringa una stringa (TextBox2.Text è già di per sé una stringa) e la eguagli ad un numero short: come detto non ha senso.
Per quello pensavo che invece volessi scrivere
codice:
TextBox2.Text = Risultato.ToString
'nota: Risultato.ToString = CStr(Risultato) = CType(Risultato, String)
In tal modo nella TextBox2 visualizzi Risultato.
D1 viene regolarmente letto: per controllare non fai altro che scrivere, subito dopo la riga che calcola D1:
Debug.Print("D1= " & D1.ToString)
e, lanciando il programma in modalità Debug, nella finestra di controllo immediato verifichi il valore che è stato attribuito a D1. Così per verificare il valore di ogni altra variabile.