Converter números em palavras

Observação: Desejamos fornecer o conteúdo da Ajuda mais recente no seu idioma da forma mais rápida possível. Esta página foi traduzida de forma automatizada e pode conter imprecisões ou erros gramaticais. Nosso objetivo é que este conteúdo seja útil para você. As informações foram úteis? Dê sua opinião no final desta página. Aqui está o artigo em inglês para facilitar a referência.

Excel não tem uma função de padrão que exibe números como palavras em inglês em uma planilha, mas você pode adicionar esse recurso colando o seguinte código de função EscreverNumero em um módulo do VBA (Visual Basic for Applications). Esta função permite que você converter valores de moeda e centavos para palavras com uma fórmula, portanto 22.50 seria lido como vinte e dois reais e 50 centavos. Isso pode ser muito útil se você estiver usando o Excel como um modelo para imprimir cheques.

Se você quiser converter valores numéricos em formato de texto sem exibi-las como palavras, use a função texto .

Observação: Microsoft fornece exemplos de programação somente para ilustração, sem garantia expressa ou implícita. Isso inclui, mas não está limitado a, as garantias de comercialização ou treino para um propósito específico. Este artigo pressupõe que você esteja familiarizado com a linguagem de programação VBA e com as ferramentas que são usadas para criar e depurar procedimentos. Engenheiros de suporte da Microsoft podem ajudar a explicar a funcionalidade de um determinado procedimento. No entanto, eles não irá modificar esses exemplos para fornecer funcionalidades adicionais ou construir procedimentos para atender às suas necessidades específicas.

Criar a função EscreverNumero para converter números em palavras

  1. Use o atalho de teclado Alt + F11 para abrir o Editor do Visual Basic (VBE).

    Observação: Você também pode acessar o Editor do Visual Basic, mostrando a guia Desenvolvedor na sua faixa de opções.

  2. Clique na guia Inserir e clique em módulo.

    No menu Inserir, clique em módulo.
  3. Copie as seguintes linhas de código.

    Observação: Este código conhecido como uma Função definida pelo usuário (UDF), automatiza a tarefa de converter números a texto em toda a sua planilha.

    Option Explicit
    
    'Main Function
    
    Function SpellNumber(ByVal MyNumber)
    
    Dim Dollars, Cents, Temp
    
    Dim DecimalPlace, Count
    
    ReDim Place(9) As String
    
    Place(2) = " Thousand "
    
    Place(3) = " Million "
    
    Place(4) = " Billion "
    
    Place(5) = " Trillion "
    
    ' String representation of amount.
    
    MyNumber = Trim(Str(MyNumber))
    
    ' Position of decimal place 0 if none.
    
    DecimalPlace = InStr(MyNumber, ".")
    
    ' Convert cents and set MyNumber to dollar amount.
    
    If DecimalPlace > 0 Then
    
    Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _ "00", 2))
    
    MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
    
    End If
    
    Count = 1
    
    Do While MyNumber <> ""
    
    Temp = GetHundreds(Right(MyNumber, 3))
    
    If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
    
    If Len(MyNumber) > 3 Then
    
    MyNumber = Left(MyNumber, Len(MyNumber) - 3)
    
    Else
    
    MyNumber = ""
    
    End If
    
    Count = Count + 1
    
    Loop
    
    Select Case Dollars
    
    Case ""
    
    Dollars = "No Dollars"
    
    Case "One"
    
    Dollars = "One Dollar"
    
    Case Else
    
    Dollars = Dollars & " Dollars"
    
    End Select
    
    Select Case Cents
    
    Case ""
    
    Cents = " and No Cents"
    
    Case "One"
    
    Cents = " and One Cent"
    
    Case Else
    
    Cents = " and " & Cents & " Cents"
    
    End Select
    
    SpellNumber = Dollars & Cents
    
    End Function
    
    
    ' Converts a number from 100-999 into text
    
    Function GetHundreds(ByVal MyNumber)
    
    Dim Result As String
    
    If Val(MyNumber) = 0 Then Exit Function
    
    MyNumber = Right("000" & MyNumber, 3)
    
    ' Convert the hundreds place.
    
    If Mid(MyNumber, 1, 1) <> "0" Then
    
    Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
    
    End If
    
    ' Convert the tens and ones place.
    
    If Mid(MyNumber, 2, 1) <> "0" Then
    
    Result = Result & GetTens(Mid(MyNumber, 2))
    
    Else
    
    Result = Result & GetDigit(Mid(MyNumber, 3))
    
    End If
    
    GetHundreds = Result
    
    End Function
    
    
    ' Converts a number from 10 to 99 into text.
    
    
    Function GetTens(TensText)
    
    Dim Result As String
    
    Result = "" ' Null out the temporary function value.
    
    If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19...
    
    Select Case Val(TensText)
    
    Case 10: Result = "Ten"
    
    Case 11: Result = "Eleven"
    
    Case 12: Result = "Twelve"
    
    Case 13: Result = "Thirteen"
    
    Case 14: Result = "Fourteen"
    
    Case 15: Result = "Fifteen"
    
    Case 16: Result = "Sixteen"
    
    Case 17: Result = "Seventeen"
    
    Case 18: Result = "Eighteen"
    
    Case 19: Result = "Nineteen"
    
    Case Else
    
    End Select
    
    Else ' If value between 20-99...
    
    Select Case Val(Left(TensText, 1))
    
    Case 2: Result = "Twenty "
    
    Case 3: Result = "Thirty "
    
    Case 4: Result = "Forty "
    
    Case 5: Result = "Fifty "
    
    Case 6: Result = "Sixty "
    
    Case 7: Result = "Seventy "
    
    Case 8: Result = "Eighty "
    
    Case 9: Result = "Ninety "
    
    Case Else
    
    End Select
    
    Result = Result & GetDigit _
    
    (Right(TensText, 1)) ' Retrieve ones place.
    
    End If
    
    GetTens = Result
    
    End Function
    
    
    ' Converts a number from 1 to 9 into text.
    
    Function GetDigit(Digit)
    
    Select Case Val(Digit)
    
    Case 1: GetDigit = "One"
    
    Case 2: GetDigit = "Two"
    
    Case 3: GetDigit = "Three"
    
    Case 4: GetDigit = "Four"
    
    Case 5: GetDigit = "Five"
    
    Case 6: GetDigit = "Six"
    
    Case 7: GetDigit = "Seven"
    
    Case 8: GetDigit = "Eight"
    
    Case 9: GetDigit = "Nine"
    
    Case Else: GetDigit = ""
    
    End Select
    
    End Function
  4. Cole as linhas de código para o Módulo1 (código) caixa.

    Código colado no Módulo1 caixa (código).
  5. Pressione Alt + Q para retornar ao Excel. A função EscreverNumero agora está pronta para uso.

    Observação: Esta função funciona somente para a pasta de trabalho atual. Para usar essa função em outra pasta de trabalho, você deverá repetir as etapas para copiar e colar o código nessa pasta de trabalho.

Início da Página

Use a função EscreverNumero em células individuais

  1. Digite a fórmula = EscreverNumero (A1) para a célula onde você deseja exibir um número escrito, onde A1 é a célula que contém o número que você deseja converter. Você pode digitar manualmente o valor como = SpellNumber(22.50).

  2. Pressione Enter para confirmar a fórmula.

Início da Página

Salvar sua pasta de trabalho de função EscreverNumero

Excel não pode salvar uma pasta de trabalho com funções de macro no formato de pasta de trabalho sem macro padrão (. xlsx). Se você clicar em arquivo > Salvar. Abre uma caixa de diálogo de projeto do VB. Clique em não.

Na caixa de diálogo de projeto do VB, clique em não.

Você pode salvar seu arquivo como uma Pasta de trabalho do Excel Macro-Enabled (. xlsm) para manter o arquivo em seu formato atual.

  1. Clique em Arquivo > Salvar Como.

  2. Clique no menu de lista suspensa Salvar como tipo e selecione Pasta de trabalho de Excel Macro-Enabled.

  3. Clique em Salvar.

Início da Página

Consulte Também

Função TEXTO

Expanda suas habilidades no Office
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×