10進数を2進数の文字列に変換する関数

タイトルのサンプルマクロは、以下です。

'**********************************
'* 10進数を、2進数の文字列に変換
'* iDec:10進数
Private Function DecToBin(ByVal iDec As Long) As String
    Dim sBin As String  ' 2進数の文字列
    
    If iDec < 0 Then
        DecToBin = "引数がマイナスです"
        Exit Function
    End If
    
    Do
        ' iDecを2で割った余り(0または1)を,sBinの左に追加。
        sBin = CStr(iDec Mod 2) & sBin
        
        ' 変数iDecを2で割ります。整数の割り算なので、小数点以下は切り捨てられます。
        iDec = Int(iDec / 2)
    ' 変数iDecが、0以下になるまで、繰り返す
    Loop Until iDec <= 0
    
    DecToBin = sBin
End Function

以下が使用例で、175が2進数に変換された文字列「10101111」が、メッセージボックスに表示されます。

Private Sub test()
    MsgBox DecToBin(175)
End Sub

Follow me!