numerosaletras

Macro · campo CardText

Números a letras en Word.

Para convertir números a letras en Word ya existe un campo nativo. Aquí está por qué casi nunca sirve en un documento en español, y la macro que sí — con apócope, concordancia de género y la «de» del millón.

CantidadEnLetras.bas

 

lo que Word ya trae

Existe una función nativa. Ese es el problema.

A diferencia de Excel, que nunca tuvo nada parecido, Word sí sabe escribir un número en palabras: los modificadores de campo \* CardText y \* DollarText están en todas las versiones, en Windows y en Mac, desde hace décadas. Se insertan sin macros y sin instalar nada.

Y es justamente por eso que esta página no puede limitarse a ofrecer una macro. Quien busca convertir números a letras en Word suele encontrar primero el truco del campo, lo prueba, funciona con 1.234 y lo da por resuelto. El problema aparece semanas después, en el documento que importaba, cuando la cantidad pasa del millón o cuando el campo devuelve el importe en inglés en mitad de un contrato.

los cuatro límites

Dónde se rompe el campo nativo.

Ninguno de los cuatro aparece en la ayuda de Word ni en la mayoría de los tutoriales. Se descubren de uno en uno, y siempre en el peor momento.

  1. 01

    Se detiene en 999.999,99

    A partir de un millón el campo deja de convertir. Es precisamente el tramo donde una escritura, un contrato de compraventa o un pagaré necesitan la cantidad escrita.

  2. 02

    Responde en el idioma de Office

    No en el del documento. En la mayoría de las instalaciones devuelve inglés —«one thousand two hundred thirty-four»— y para cambiarlo hay que tocar la configuración de idioma de Office, no la del archivo.

  3. 03

    No admite negativos

    Su mínimo es cero. Un importe negativo devuelve un error de campo, sin aviso de por qué.

  4. 04

    No sabe de gramática española

    Aun respondiendo en español, no aplicaría la apócope de «veintiún», la concordancia de género ni la «de» que exige el millón antes del nombre de la moneda.

El cuarto es el que decide. Un campo que escribiera «veintiuno mil pesos» o «un millón pesos» estaría mal aunque respondiera en español y aunque pasara del millón: son errores de gramática, no de configuración, y ninguna opción de Word los arregla.

las llaves

Un campo no son dos llaves escritas.

Es el tropiezo número uno de quien copia el truco de un tutorial. Un campo de Word es un objeto, no un texto: se inserta con Ctrl+F9, y entonces Word dibuja unas llaves grises que no se pueden teclear. Escribir { } con el teclado produce dos caracteres corrientes que se imprimen tal cual.

Con el campo insertado, quedan dos atajos que conviene memorizar. F9 actualiza el campo bajo el cursor y calcula el resultado. Alt+F9 alterna en todo el documento entre ver los códigos y ver los resultados — útil cuando un documento heredado muestra llaves por todas partes y uno cree que se ha roto.

instalar la macro

Cinco pasos, una sola vez.

Después, convertir números a letras en Word es seleccionar la cifra y pulsar un atajo: la macro reemplaza la selección por la cantidad escrita.

  1. 01

    Abra el editor de Visual Basic

    Alt+F11 en Windows. En Mac, menú Herramientas ▸ Macro ▸ Editor de Visual Basic. Es la misma ventana desde hace veinte años; no se ha equivocado de sitio.

  2. 02

    Inserte un módulo

    Menú Insertar ▸ Módulo. Tiene que ser un módulo: pegada en «ThisDocument» la macro existe pero no aparece en la lista de macros del documento.

  3. 03

    Pegue el código

    Copie el bloque de arriba y péguelo en la ventana en blanco. No hay que ejecutar nada todavía.

  4. 04

    Decida dónde vive

    Si la guarda en Normal.dotm la tendrá en todos los documentos de ese equipo. Si la quiere solo en este archivo, guárdelo como .docm — documento habilitado para macros. Guardarlo como .docx normal descarta el código.

  5. 05

    Asígnele un atajo

    Seleccione la cifra en el documento y ejecute CantidadEnLetras con Alt+F8. Si va a usarla a diario, dele un atajo en Archivo ▸ Opciones ▸ Personalizar cinta ▸ Teclado: seleccionar y pulsar dos teclas es lo que hace que se use.

el mismo motor

La macro de Word y la de Excel comparten el algoritmo.

Lo que cambia entre las dos es la puerta de entrada. En Excel interesa una función de hoja, =NumeroALetras(A1), que se arrastra por una columna. En Word uno tiene la cifra escrita en un párrafo y quiere la letra en su lugar, así que la puerta es un procedimiento que lee la selección y la sustituye.

Por debajo, las siete funciones que hacen el trabajo son literalmente las mismas, y se generan desde una sola fuente. No es una casualidad ni un ahorro de tiempo: dos copias del mismo algoritmo se separan en cuanto alguien arregla un detalle en una de ellas, y el detalle que se arregla en estos algoritmos suele ser una regla de gramática que estaba mal.

Si los números viven en una hoja de cálculo, empiece por números a letras en Excel y traiga la columna a Word por combinación de correspondencia. Para una cantidad suelta, el convertidor del sitio no exige instalar nada.

muchos documentos a la vez

Cuando son cien contratos, no cien macros.

El caso cambia por completo si hay que emitir cien recibos o cien pagarés con importes distintos. Ahí no se trata de convertir números a letras en Word uno por uno, sino de que cada documento salga ya con su cantidad escrita. La combinación de correspondencia hace eso, pero con una condición que suele olvidarse: Word no convierte durante la combinación.

El campo de combinación trae el valor tal cual está en el origen de datos. Si en la hoja de cálculo hay 1234,56, en el documento aparecerá 1234,56. Añadirle \* CardText al campo de combinación devuelve a los mismos cuatro límites de antes, con el añadido de que un error en un documento combinado se multiplica por cien sin que nadie lo revise.

La salida limpia es resolver la conversión en el origen. Se añade a la hoja una columna con la cantidad ya en letras —para eso está la macro o la función LAMBDA de la página de Excel— y en Word se inserta esa columna como un campo de combinación cualquiera. Word deja de tener que entender de gramática española: solo copia un texto que ya viene bien escrito.

Es también la manera de que los dos documentos digan lo mismo. La cifra y la letra salen de la misma celda de origen, así que no pueden discrepar — que es justo el riesgo que hace que un cheque o un pagaré lleven la cantidad dos veces.

preguntas

Dudas frecuentes.

¿Word tiene una función para convertir números a letras?

Tiene algo parecido, y por eso convertir números a letras en Word confunde: los modificadores de campo \* CardText y \* DollarText, presentes en todas las versiones. Convierten, pero con cuatro límites que los hacen poco útiles en un documento en español, empezando por el más duro: no pasan de 999.999,99. La macro de esta página no tiene ninguno de esos límites.

¿Por qué mi campo devuelve el número en inglés?

Porque el campo responde en el idioma de Office, no en el del documento. Aunque escriba en español y tenga el idioma de revisión en español, si la instalación de Office es inglesa el campo devolverá «one thousand two hundred». Cambiarlo exige tocar la configuración de idioma de Office, no una opción del archivo.

¿Por qué las llaves del campo no funcionan si las escribo?

Porque un campo no son dos llaves: es un objeto de Word que se inserta con Ctrl+F9. Si teclea { } con el teclado, Word ve dos caracteres corrientes y los imprime tal cual. Es el fallo más repetido de quien copia un campo de un tutorial. Con el cursor dentro, F9 actualiza el campo y Alt+F9 alterna entre ver el código y ver el resultado.

¿La macro funciona en Word para Mac?

Sí. El editor se abre desde Herramientas ▸ Macro ▸ Editor de Visual Basic y el resto es idéntico, porque VBA no cambia entre plataformas ni entre idiomas de Office. Lo que sí cambia en Mac es la gestión de permisos de archivo, que puede pedir confirmación la primera vez.

¿Es seguro habilitar macros?

Depende de dónde venga el archivo. Desde 2022 Word bloquea por defecto las macros de documentos descargados de internet o recibidos por correo, y hace bien. La diferencia aquí es que usted no descarga un .docm: copia el código a la vista, lo pega en su propio documento y lo guarda usted mismo. Si su empresa prohíbe las macros por directiva, el camino es la pestaña del campo nativo, con sus límites.

¿Y si los números vienen de una tabla o de Excel?

Si son muchos y viven en una hoja de cálculo, conviene resolver la conversión allí y traer a Word la columna ya escrita mediante combinación de correspondencia. Para eso está la página de números a letras en Excel, que genera la macro o la función LAMBDA equivalente.

siguiente

Si el destino es otro.

Última revisión: 11 de agosto de 2026 · Reportar un error