2
Obrigado

Algumas palavras de agradecimento nunca são demais.

VBA Excel: como converter decimal para binário

Abaixo, você terá acesso a algumas funções que permitem converter números decimais para o formato binário. Com elas, você economizará muito tempo. No entanto, é preciso ter algum conhecimento em VBA para realizar o procdimento.




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

Diferença entre as duas fórmulas

A principal diferença entre as duas fórmulas é seu alcance. Com a primeira função, números maiores que 511 retornarão uma mensagem de erro já que seu alcance, como demonstrado acima vai apenas de -512 a 511. Assim, caso você pretenda realizar a conversão de decimal para binário de valores maiores, dê preferência para a segunda função.

Foto: © dennizn - Shutterstock.com

Veja também

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 (br.ccm.net) ao utilizar este artigo.

0 Comentário