Ese algoritmo está mal, ya que si inserto el Diez (10) como valor decimal el me devuelve 01010000 en binario que es 80 en decimal.
Lo que me devería de devolver sería 00001010 que es el Diez decimal.
hace mucho hice uno pero que hace lo contrario. Convierte de binario a decimal.
Código:
Private Sub Form_Load()
Dim i As String
i = BinToDec("00001010")
End Sub
Public Function BinToDec(strBin As String) As Long
Dim i As Long
Dim lngPotencia As Long
lngPotencia = 1
For i = 8 To 1 Step -1
If Mid(strBin, i, 1) = "1" Then
BinToDec = BinToDec + lngPotencia
End If
lngPotencia = lngPotencia * 2
Next
End Function
Aqui te lo dejo. Tal vez te sirva de referencia para hacer la inversa.