Macro · campo CardText
Para escrever número por extenso no Word já existe um campo nativo, e no Office em português ele até responde em português. O que ninguém conta é que ele descarta os centavos sem avisar — e aqui está a macro que não faz isso.
ValorPorExtenso.bas
o erro que não parece erro
O campo \* CardText
converte a parte inteira e joga o resto fora. Não arredonda com aviso, não devolve
erro, não deixa rastro: simplesmente escreve o valor sem os centavos, e o documento
sai bem formatado, coerente e errado.
Num teste rápido isso não aparece. Quem experimenta o truque digita 1234, vê «mil duzentos e trinta e quatro», acha que resolveu e adota. O defeito só se manifesta no documento que importava — o contrato, o recibo, a nota promissória —, e ali um valor por extenso que não bate com a cifra ao lado é exatamente o tipo de divergência que esses documentos existem para evitar.
É por isso que esta página não se limita a oferecer uma macro. Diferente do que acontece em espanhol, onde o campo costuma responder em inglês e o problema salta aos olhos, no Office em português ele responde certinho — e é justamente aí que engana.
os cinco limites
Nenhum deles aparece na ajuda do Word, e todos aparecem para quem tenta escrever número por extenso no Word com o campo pronto. Descobrem-se um a um, sempre na pior hora.
01
silenciosoE não avisa. R$ 150,35 sai como «cento e cinquenta»: o campo converte a parte inteira e descarta o resto. Num recibo ou num contrato isso é pior do que um erro visível, porque o documento fica coerente e com o valor errado.
02
É a alternativa para não perder os centavos, mas escreve-os como fração sobre cem — «e 35/100» — em vez de por extenso. Serve para cheque; num contrato que pede o valor escrito por completo, não.
03
A partir de um milhão o campo deixa de converter. É exatamente a faixa em que uma escritura, uma compra e venda ou uma nota promissória precisam do valor por extenso.
04
O mínimo é zero. Um valor negativo devolve erro de campo, sem dizer por quê.
05
Não no do documento. Num Office instalado em inglês — comum em empresa —, o campo devolve «one hundred fifty» no meio de um contrato em português, e corrigir exige mexer na configuração do Office, não do arquivo.
Os quatro últimos avisam de alguma forma: dão erro, param de converter ou escrevem em outro idioma. O primeiro não avisa nada, e por isso é o único marcado. Um erro que se vê custa dez minutos; um que não se vê pode custar o documento.
as chaves
Um campo do Word é um objeto, não um texto: entra com Ctrl+F9, e o
Word desenha um par de chaves cinza que não se consegue digitar. Escrever
{ } pelo
teclado produz dois caracteres comuns, que saem impressos assim mesmo. É o motivo
número um de «copiei do tutorial e não funcionou».
Com o campo no lugar, ficam dois atalhos que vale memorizar. F9 atualiza o campo sob o cursor e calcula o resultado. Alt+F9 alterna no documento inteiro entre ver os códigos e ver os resultados — útil quando um arquivo herdado aparece cheio de chaves e parece quebrado.
instalar a macro
Depois disso, escrever número por extenso no Word é selecionar a cifra e apertar um atalho: a macro substitui a seleção pelo valor escrito.
01
Alt+F11 no Windows. No Mac, menu Ferramentas ▸ Macro ▸ Editor do Visual Basic. É a mesma janela há vinte anos; você não errou o caminho.
02
Menu Inserir ▸ Módulo. Precisa ser um módulo: colada em «EstaPasta» ou em «ThisDocument», a macro existe mas não aparece na lista de macros do documento.
03
Copie o bloco acima e cole na janela em branco. Não é preciso executar nada ainda.
04
Em Normal.dotm, a macro fica disponível em todos os documentos daquele computador. Só neste arquivo, salve como .docm — documento habilitado para macro. Salvar como .docx comum descarta o código sem avisar direito.
05
Selecione o valor no documento e execute ValorPorExtensoNaSelecao com Alt+F8. Se for usar todo dia, atribua um atalho em Arquivo ▸ Opções ▸ Personalizar Faixa de Opções ▸ Teclado: selecionar e apertar duas teclas é o que faz a ferramenta ser usada.
o mesmo motor
O que muda entre as duas é a porta de entrada. No Excel interessa uma função de
planilha, =ValorPorExtenso(A1),
que se arrasta por uma coluna. No Word a cifra está escrita num parágrafo e o que se
quer é o texto no lugar dela, então a porta é um procedimento que lê a seleção e a
substitui.
Por baixo, as funções que fazem o trabalho são literalmente as mesmas e saem de uma fonte única. Não é economia de digitação: duas cópias do mesmo algoritmo se separam assim que alguém conserta um detalhe numa delas, e nestes algoritmos o detalhe que se conserta costuma ser uma regra de gramática que estava errada — o «e» entre classes, o «de» dos múltiplos de milhão.
Se os valores moram numa planilha, comece por valor por extenso no Excel e traga a coluna pronta por mala direta. Para um valor avulso, o conversor do site não pede instalação nenhuma.
muitos documentos de uma vez
O caso muda quando é preciso emitir cem recibos ou cem notas promissórias com valores diferentes. Aí não se trata de escrever número por extenso no Word um a um, e sim de cada documento já sair com o seu valor escrito. A mala direta faz isso, com uma condição que costuma passar batida: o Word não converte durante a mala direta.
O campo de mesclagem traz o valor exatamente como está na origem. Se na planilha há
1234,56, no
documento aparece 1234,56.
Acrescentar \* CardText
ao campo de mesclagem devolve aos mesmos cinco limites — inclusive o descarte dos
centavos —, agora multiplicados por cem e sem ninguém conferindo documento por
documento.
A saída limpa é resolver na origem. Acrescenta-se à planilha uma coluna com o valor já por extenso e, no Word, insere-se essa coluna como um campo de mesclagem qualquer. O Word deixa de precisar entender de gramática: só copia um texto que já veio certo.
É também assim que a cifra e o texto passam a dizer a mesma coisa. Os dois saem da mesma célula de origem, então não têm como divergir — que é exatamente o risco pelo qual um cheque ou uma nota promissória trazem o valor duas vezes.
perguntas
Tem, e é justamente aí que mora o problema. Os campos \* CardText e \* DollarText existem em todas as versões e, num Office em português, respondem em português: 150 vira «cento e cinquenta». Como funciona no primeiro teste, muita gente adota e só descobre o defeito depois — o CardText descarta os centavos sem avisar.
Porque o CardText converte só a parte inteira e joga o resto fora. Não é arredondamento com aviso, é descarte silencioso: o documento fica coerente, bem formatado e com o valor errado. Para não perder os centavos há duas saídas — o DollarText, que os escreve como fração NN/100, ou a macro desta página, que os escreve por extenso.
O CardText escreve o número por extenso e ignora a parte decimal. O DollarText escreve a parte inteira por extenso e acrescenta os centavos como fração sobre cem: «cento e cinquenta e 35/100». O segundo serve para cheque, onde essa forma é a praxe; num contrato que pede o valor escrito por completo, nenhum dos dois resolve sozinho.
Porque um campo do Word não é um par de chaves: é um objeto, inserido com Ctrl+F9. Chave digitada pelo teclado é um caractere comum e sai impressa assim mesmo. É o tropeço mais repetido de quem copia o truque de um tutorial. Com o cursor dentro, F9 atualiza o campo e Alt+F9 alterna entre ver o código e ver o resultado.
Sim. O editor abre em Ferramentas ▸ Macro ▸ Editor do Visual Basic e o resto é idêntico, porque o VBA não muda entre plataformas nem entre idiomas do Office. O que muda no Mac é a permissão de acesso a arquivos, que pode pedir confirmação na primeira execução.
Depende da procedência do arquivo. Desde 2022 o Word bloqueia por padrão as macros de documentos baixados da internet ou recebidos por e-mail, e faz bem. A diferença aqui é que você não baixa um .docm: copia um código que está à vista, cola no seu próprio documento e salva você mesmo. Se a política da empresa proíbe macro, o caminho é a aba do campo nativo, com os limites que ela tem.
Se são muitos e moram no Excel, o melhor é resolver a conversão lá e trazer para o Word a coluna já escrita, por mala direta. O Word não converte durante a mala direta: ele copia o que estiver no campo de origem. A página de valor por extenso no Excel gera a macro ou a função LAMBDA para isso.
a seguir
Função de planilha, LAMBDA sem macros ou Apps Script, conforme o que o seu ambiente permite.
→ abrirSe o que ia escrever no Word era um recibo, aqui ele sai montado e em duas vias.
→ abrirO documento em que o valor por extenso decide o título: com os requisitos conferidos.
→ abrirÚltima revisão: 11 de agosto de 2026 · Relatar um erro