vba hexidecimal string to decimal
'VBA function to convert a hexadecimal string into a decimal. Uses 'the Decimal Variant subtype to allow for much larger values than the 'worksheet function HEX2DEC() or CLng("&h" & HexVal) can achieve. It 'returns an UNSIGNED Decimal integer... Function HexToDec(hexStr$) Dim c&, i&, bitVal Static hexVals&(), b() As Byte If (Not Not hexVals) = 0 Then ReDim hexVals(48 To 102) For i = 48 To 57 hexVals(i) = c c = c + 1 Next For i = 65 To 70 hexVals(i) = c c = c + 1 Next c = 10 For i = 97 To 102 hexVals(i) = c c = c + 1 Next End If bitVal = CDec(1) HexToDec = CDec(0) b = StrConv(hexStr, vbFromUnicode) For i = UBound(b) To 0 Step -1 HexToDec = HexToDec + hexVals(b(i)) * bitVal bitVal = bitVal * 16& Next End Function '------------------------------------------------------------------------------------- MsgBox HexToDec("fffffffffffffffffffffff") '<--displays: 4951760157141521099596496895 MsgBox TypeName(HexToDec("ABCDEF0123456")) '<--displays: Decimal ' ' '