Преобразование всех десятичных дробей и добавление:
Dim hexVal as String
Dim hexValtoLong as Double
Dim hexValToLongF as Double
'Alternatively can put everything in a loop and add together
hexValToLongF = 0
hexVal = "10E0"
hexValToDouble = cdbl("&H" & hexVal)
hexValToLongF = hexValToDouble + hexValToLongF
'... repeat
Преобразование десятичных чисел в двоичные:
Public Function DecToBin(ByVal theDec As Variant) As String
Dim i As Long
For i = 31 To 0 Step -1
DecToBin = DecToBin & CStr(Int(theDec / (2 ^ i)))
theDec = theDec - Int(theDec / (2 ^ i)) * (2 ^ i)
Next i
End Function
источник: http://www.vbaexpress.com/forum/showthread.php?3599-Solved-Convert-Decimal-To-Binary
Инвертированная двоичная строка:
Public Function binverse(wCell As String) As String
Dim x, y As Integer
Dim nResult As String
nResult = vbNullString
x = Len(wCell)
For y = 1 To x
If Mid(wCell, y, 1) = "1" Then
nResult = nResult & "0"
Else
nResult = nResult & "1"
End If
Next
binverse = nResult
End Function
источник: https://www.excelforum.com/excel-general/551647-binary-inverse.html
Преобразование двоичного кода в дек:
Private Function Bin2Dec(Bin As String) As Long
Dim TempVal As Long
Dim RevI As Long
Dim I As Long
For I = Len(Bin) To 1 Step -1
RevI = (Len(Bin) - I) + 1
Debug.Print RevI
If Mid(Bin, I, 1) = "1" Then TempVal = TempVal + (2 ^ (RevI - 1))
Next I
Bin2Dec = TempVal
End Function
источник: http://www.vbforums.com/showthread.php?213436-Addition-of-Binary-Numbers-in-VB
Затем добавьте один к нему и используйте предоставленную функцию в vba Hex()
, чтобы преобразовать число обратно в гекс.Использование всего должно дать вам возможность выполнить то, что вы изначально изложили в своем посте.