Function DC(esa) As Long
Dim n, i, temp As Integer
Dim cifra as String
decimale = 0
n = Len(esa)
For i = 1 To n
cifra = UCase(Mid(esa, i, 1)) ' estraggo il carattere a peso maggiore
If (InStr("0123456789ABCDEF", cifra) - 1) = -1 Then DC = -5: GoTo ESCI
'se non è un carattere esadecimale la funzione ritorna -5
temp = temp + (InStr("0123456789ABCDEF", cifra) - 1) * 16 ^ (n - i)
Next
DC = temp
ESCI: End Function

Mi ritorna in pratica lo stesso indentico valora che avrei convertendo da HEX->DEC con la calcolatrice di windows...

La stringa contenuta in valore arriva da una textbox