VBA: como converter decimal para binário

Essas funções convertem um número inteiro em binário.


Com o WorksheetFunction

Esta função usa a fórmula Dec2Bin do Excel.

Argumentos

N [Obrigatório] (Long): deve estar entre -512 e 511 (inclusive).
P [Facultativo] (Long): Número de caracteres úteis.
Se P estiver omitido, DecToBin2 usa o mínimo de caracteres úteis.

Function Dec_Bin(ByVal N As Long, Optional P As Long) As String
    If N > 511 Then
        Dec_Bin = "Erro: N é muito grande! (N deve ser <= 511)"
    ElseIf N < -512 Then
        Dec_Bin = "Erro: N é muito pequeno! (N deve ser >= -512)"
    Else
        If P = 0 Then
            Dec_Bin = WorksheetFunction.Dec2Bin(N)
        Else
            Dec_Bin = WorksheetFunction.Dec2Bin(N, P)
        End If
    End If
End Function

Função VBA

Função de conversão VBA pura menos restritiva.

Argumentos

N [Obrigatório] (Long): Deve ser um número inteiro positivo

Function Dec_En_Bin(ByVal N As Long) As String
Dim strTemp As String
 
    Do While N > 1
        strTemp = N - 2 * (N \ 2) & strTemp
        N = N \ 2
    Loop
    Dec_En_Bin = N & strTemp
End Function

Exemplo de chamada

Sub Test()
Dim Nb As Long
    Nb = 50
        Debug.Print Nb & "nos dá (com worksheetfunction): " & Dec_Bin(Nb)
        Debug.Print Nb & "nos dá (com VBA): " & Dec_En_Bin(Nb)
    Nb = 9000
        Debug.Print Nb & "nos dá (com worksheetfunction): " & Dec_Bin(Nb)
        Debug.Print Nb & "nos dá (com VBA): " & Dec_En_Bin(Nb)
End Sub

Resultado:
50 nos dá (com worksheetfunction): 110010
50 nos dá (com VBA): 110010
9000 nos dá (com worksheetfunction): Erro: N é muito grande! (N deve ser <= 511)
9000 nos dá (com VBA): 10001100101000

Foto: © Microsoft.
Artigo original publicado por pijaku. Tradução feita por pintuda. Última modificação: 23 de fevereiro de 2018 às 03:16 por pintuda.
Este documento, intitulado 'VBA: como converter decimal para binário', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (https://br.ccm.net/) ao utilizar este artigo.
VBA - Cifra de César
A função VBA determina se uma palavra pode ser soletrado com uma coleção de letras