# VBA – Converting Between Decimal and Binary

Quite some time ago I had a particular need to convert Decimal to Binary and vice versa. It took a little digging but eventually came across this little gem and thought it was worth posting for others to use.

```'Decimal To Binary ' ================= ' Source: http://groups.google.ca/group/comp.lang.visual.basic/browse_thread/thread/28affecddaca98b4/979c5e918fad7e63 ' Author: Randy Birch (MVP Visual Basic) ' NOTE: You can limit the size of the returned ' answer by specifying the number of bits Function Dec2Bin(ByVal DecimalIn As Variant, _ Optional NumberOfBits As Variant) As String Dec2Bin = "" DecimalIn = Int(CDec(DecimalIn)) Do While DecimalIn <> 0 Dec2Bin = Format\$(DecimalIn - 2 * Int(DecimalIn / 2)) & Dec2Bin DecimalIn = Int(DecimalIn / 2) Loop If Not IsMissing(NumberOfBits) Then If Len(Dec2Bin) > NumberOfBits Then Dec2Bin = "Error - Number exceeds specified bit size" Else Dec2Bin = Right\$(String\$(NumberOfBits, _ "0") & Dec2Bin, NumberOfBits) End If End If End Function   'Binary To Decimal ' ================= Function Bin2Dec(BinaryString As String) As Variant Dim X As Integer For X = 0 To Len(BinaryString) - 1 Bin2Dec = CDec(Bin2Dec) + Val(Mid(BinaryString, _ Len(BinaryString) - X, 1)) * 2 ^ X Next End Function```

View ratings