
Apuesto poco, pero si tuviera que hacerlo, apostaría que tú, mi querido lector eres un usuario de WhatsApp, esa aplicación para estar en contacto con tus amigos. Si no voy desencaminado, seguro que quieres saber cómo cambiar el formato de texto a los mensajes que envías por WhatsApp. Pues bien, en este artículo verás cómo cambiar el formato de texto para WhatsApp con AutoHotkey, esa herramienta de productividad de la que estoy enamorado.
Formato para WhatsApp
Lo mismo solo buscas cómo cambiar el formato de texto de tus mensajes en WhatsApp… Si es así, lo que buscas está aquí en esta sección; lo voy a poner aquí antes que nada y de paso te digo que lo podrías hacer más rápido, MUCHO MÁS RÁPIDO DE LO QUE PIENSAS. ¿Tendrás la paciencia para seguir leyendo?
Tú decidirás si aceptas mi invitación a leer el resto del artículo.
Al grano: quieres tener texto con formato dentro de WhatsApp como este:

Para conseguirlo, hay que rodear con unas determinadas etiquetas. Lo tienes resumido en la siguiente tabla:
Formato | Ejemplo con las etiquetas |
Negrita | ejemplo de *negrita* |
Cursiva | ejemplo de _cursiva_ |
ejemplo de ~tachado~ | |
Monoespacio | ejemplo de ```monoespacio``` |
Por supuesto, puedes mezclar formatos y tener todas las posibilidades:
- negrita, cursiva
- negrita, cursiva, monoespacio
negrita, cursiva, tachado y monoespacio
Solo hay que tener un poco de cuidado con los asteriscos y demás caracteres especiales. Quiero decir, que no te falte ninguno: cada asterisco de apertura (por ejemplo) tiene que tener su asterisco de cierre y viceversa. Hacerlo así, te sirve para una vez, pero es improbable que repitas la experiencia…
Te dije que te avisaría y aquí estamos: Lo que sigue en el artículo es solo si quieres acelerar tu escritura en WhatsApp.
⁂
Planteamiento del problema
Imagínate que estás sentado delante de tu PC trabajando con WhatsApp.
Lo digo porque hay mucha gente que asocia WhatsApp con móvil y que desconoce que puede trabajar con WhatsApp desde su PC.
El móvil es un dispositivo muy bueno para recibir información, pero desastroso para enviarla. Por eso, casi siempre que puedo, escribo desde un ordenador y evito escribir desde la minipantalla del móvil.
Así pues, el contexto es que manejas WhatsApp desde el ordenador, nada de móvil. ¿Aclarado?
Además de estar delante de tu PC, quieres copiar un texto desde Microsoft Word o desde tu navegador web y pegarlo «con formato» de cualquiera de estas dos formas:
- en una ventana de WhatsApp Web de tu navegador;
- en la aplicación de WhatsApp para PC.
Nota: Por si lo desconocías, tienes un enlace para cada forma de trabajar con WhatsApp en tu PC.
El texto copiado con CTRL+C tiene formato, sí… Pero, por supuesto, perderás el formato si lo pegas con CTRL+V en WhatsApp.
Para mantener el formato, puedes hacer dos cosas:
- insertar tú mismo los asteriscos (*), subrayados (_), virgulillas (~) y tildes graves (```);
- procesar el texto copiado con AutoHotkey para insertar automáticamente los asteriscos, subrayados, virgulillas y tildes graves necesarias para verse en WhatsApp con formato.
La primera forma es un rollo, lenta y con muchas probabilidades de que se te escape algún asterisco, por ejemplo, y que el mensaje entero se vea con negrita. Algo que me ha pasado muchas veces… ¡No te la recomiendo!
La segunda es rápida, sin errores y es la que vamos a ver en el resto del artículo.
¡Te encantará!
⁂
Cambiar el formato de texto para WhatsApp con AutoHotkey
Si estás decidido por la segunda forma, la rápida y segura, aquí tienes el código de AutoHotkey.
Aparte, y esto es importante, necesitas tener instalado Microsoft Word. El motivo lo verás con el código empleado, pero entenderás enseguida si te digo que Microsoft Word será la herramienta que detectará el formato (negrita, cursiva, tachado o monoespacio).
;------------------------------------------------ ; WINDOWS + W ; https://www.gonduana.com/cambiar-el-formato-de-texto-para-whatsapp-con-autohotkey ; Convierte el texto a FORMATO WHATSAPP ;------------------------------------------------ #w:: ; Copiar contenido al Portapapeles SendInput ^c ; Abrir documento temporal de Word y pegar texto seleccionado oWord := ComObjCreate("Word.Application") oWord.Documents.Add oWord.visible := true ; Pegar con formato (16 = Formato original) oWord.Selection.PasteAndFormat(16) ; Borrar el formato de los cuadros de texto Buscar y Reemplazar buscarObj := oWord.Selection.Find buscarObj.Replacement.ClearFormatting ; negrita buscarObj.ClearFormatting buscarObj.Font.Bold := true buscarObj.Execute("", 0, 0, 0, 0, 0, 1, 1, 1, "*^&*", 2) buscarObj.Execute("^p*", 0, 0, 0, 0, 0, 1, 1, 1, "*^p", 2) ; cursiva buscarObj.ClearFormatting buscarObj.Font.Italic := true buscarObj.Execute("", 0, 0, 0, 0, 0, 1, 1, 1, "_^&_", 2) buscarObj.Execute("^p_", 0, 0, 0, 0, 0, 1, 1, 1, "_^p", 2) ; tachado buscarObj.ClearFormatting buscarObj.Font.StrikeThrough := 1 buscarObj.Execute("", 0, 0, 0, 0, 0, 1, 1, 1, "~^&~", 2) buscarObj.Font.DoubleStrikeThrough := 1 buscarObj.Execute("", 0, 0, 0, 0, 0, 1, 1, 1, "~^&~", 2) buscarObj.Execute("^p~", 0, 0, 0, 0, 0, 1, 1, 1, "~^p", 2) ; monoespacio buscarObj.ClearFormatting buscarObj.Font.Name:= "Courier New" buscarObj.Execute("", 0, 0, 0, 0, 0, 1, 1, 1, "``````^&``````", 2) buscarObj.ClearFormatting buscarObj.Font.Name:= "Consolas" buscarObj.Execute("", 0, 0, 0, 0, 0, 1, 1, 1, "``````^&``````", 2) buscarObj.ClearFormatting buscarObj.Font.Name:= "Courier" buscarObj.Execute("", 0, 0, 0, 0, 0, 1, 1, 1, "``````^&``````", 2) buscarObj.ClearFormatting buscarObj.Font.Name:= "Lucida Console" buscarObj.Execute("", 0, 0, 0, 0, 0, 1, 1, 1, "``````^&``````", 2) buscarObj.Execute("^p``````", 0, 0, 0, 0, 0, 1, 1, 1, "``````^p", 2) ; Seleccionar todo, copiar oWord.Selection.WholeStory Clipboard = oWord.Selection.Copy ClipWait, 5 ; Cerrar documento y aplicación oWord.ActiveDocument.Close(0) oWord.quit() ; Pasar contenido del Portapapeles a texto plano Clipboard = %Clipboard% return
1. Preparación
La línea 6 es el atajo empleado para ejecutar la macro. En este caso, el atajo es WINDOWS+W, pero puedes cambiarlo al que te apetezca.
La línea 8 copia el texto seleccionado al Portapapeles. Como ves, lo único que necesitas antes de ejecutar la macro es tener seleccionado el texto que quieres convertir a formato WhatsApp.
La línea 11 crea un objeto especial, una aplicación de Word, para pegar temporalmente el texto recién copiado. Emplea la tecnología COM de Microsoft. Aquí no te puedo contar más que con COM puedes aprovechar todo el lenguaje de marcos de VBA en AutoHotkey y que es la forma más fiable de interactuar con programas como Microsoft Word, Microsoft Excel, Microsoft Outlook; el único requisito del programa es que tenga publicado cómo aprovechar COM. Para el caso concreto de Microsoft Word puedes mirarte la documentación en este enlace.
La línea 12 añade un documento en blanco; de otra forma, la aplicación estaría lanzada, pero sin ningún documento. Emplea el método Add.
La línea 13 hace visible el documento. Esta línea no es imprescindible, solo la pongo aquí para que vayas viendo lo que hace la macro, pero te recomiendo quitarla cuando esté en producción. ¿Entendido? Emplea la propiedad Visible.
La siguiente línea, la 15, pega el contenido del Portapapeles. Emplea el método PasteAndFormat con el parámetro 16 para pegarlo con el formato original.
2. Reemplazar textos con formato
He incluido la línea 17 para hacer el código más legible. Lo que hace es asignar un objeto Find a la variable buscarObj, simplemente por simplificar. Quiero decir que las líneas 17 y 18:
buscarObj := oWord.Selection.Find
buscarObj.Replacement.ClearFormatting
son equivalentes a una única línea, pero más larga:
oWord.Selection.Find.Replacement.ClearFormatting
Como vamos a usar este objeto buscarObj por toda la macro, creo que es interesante usarlo.
Lo que harán las siguientes líneas será detectar el formato, tal y como lo haríamos al buscar y reemplazar de la forma habitual dentro de Microsoft Word. Para ello, no te sonrojes, te pongo aquí una captura del cuadro de diálogo Buscar y Reemplazar de Word:

Las líneas 18 y 21 hacen el equivalente de borrar el formato (si lo hubiera) de los cuadros de texto Buscar y Reemplazar con, respectivamente. Cada línea emplea el método ClearFormatting, una para el cuadro de texto Buscar y otra para el de Reemplazar con. ¿Lo ves?
La línea 21 se repite antes de cada formato (líneas 27, 33, 42, etc.). De esta manera, nos aseguramos de que el cuadro de texto Buscar esté sin formato.
Empezamos buscando las negritas, que tomaremos como plantilla, porque el resto de formatos se procesan de forma similar. Para ello, en la línea 22 se asigna el valor true en la propiedad Bold del famoso objeto buscarObj.
La línea 23 ejecuta la búsqueda y el reemplazo con el método Execute, que tiene la friolera de 11 parámetros. Puedes ver más información de todos los métodos de Word aquí, pero te adelanto lo importante:
- La plantilla de este método Execute puedes consultarla aquí y es:
Execute( _FindText_ , _MatchCase_ , _MatchWholeWord_ , _MatchWildcards_ , _MatchSoundsLike_ , _MatchAllWordForms_ , _Forward_ , _Wrap_ , _Format_ , _ReplaceWith_ , _Replace_ , _MatchKashida_ , _MatchDiacritics_ , _MatchAlefHamza_ , _MatchControl_ ) - El primer parámetro es la cadena que se va a buscar entre comillas rectas. Como dentro de las comillas no hay nada, se buscar cualquier cosa en negrita.
- Luego hay una ristra de cinco ceros («0») separados por coma; puedes ver lo que significan en la plantilla.
- Siguen tres unos («1») separados por comas que significan buscar en todo el documento, teniendo en cuenta el formato (en este caso, con las negritas).
- El siguiente parámetro es la cadena de reemplazo, en este caso, *^&*.
Detengámonos un instante…
Ya sabemos que los textos en negritas deben estar entre asteriscos, ¿verdad?
Antes de seguir, asegúrate de que ves los dos asteriscos en la cadena de reemplazo. ¿Sí?
Pues adelante, porque esta pregunta quizás es más complicada: ¿Qué es ese ^& (acento circunflejo y el ampersand inglés) dentro de la cadena de reemplazo? La respuesta es que ^& significa «lo que se haya encontrado».
Si lo piensas bien, lo que se hace es buscar texto en negritas y rodearlo entre asteriscos. - El último parámetro indica cuántas veces hay que efectuar el reemplazo. Como puedes ver en este enlace, un valor de 2 es equivalente a pulsar el botón Reemplazar todo de Word.
- No es necesario especificar los 4 últimos de parámetros de la plantilla del método Execute, son opcionales, de modo que dejamos la línea 23 lo más sencilla posible.
¿Se ha entendido?
La línea siguiente, la 24, no debería ser necesaria, pero el mundo real es otra cosa. Lo que hace es buscar retornos de carro (^p) seguidos de un asterisco (*). Es decir, que busca etiquetas finales de negrita «perdidas» al inicio de una línea. Esta línea es necesaria porque WhatsApp necesita que cada línea tenga su asterisco de inicio y final. No hacerlo así sería un desastre para el formato y, lo más seguro, es que al enviar tu mensaje, el resto del mensaje se vería en negrita, que no es lo que quieres…
Por ejemplo, si quisieras enviar por WhatsApp este texto:
Hola:
Esto es una prueba
tras la línea 22 tendrías este texto procesado:
*Hola:
*Esto es una prueba
Esto se ve así en WhatsApp:

Por tanto, la línea 23 evitará este formato incorrecto y después de colocar las etiquetas de negritas en su sitio:
*Hola:*
Esto es una prueba
el texto te saldrá como querías:

Es complicado de ver y más de explicar, pero si quitas la línea 23 y pruebas bien la macro, verás lo que quiero decir.
Si has comprendido el procedimiento de las negritas, mis más sincera enhorabuena.
Además, si entiendes las negritas, también entiendes los textos cursiva (rodeándolos por subrayados [_]) y tachados (rodeándolos por virgulillas [~]).
Enhorabuena, porque estás casi al final de comprender toda la macro.
Por último, las líneas 42 a 57 convierten las fuentes monoespacio y esto sí merece una sección aparte.
3. Reemplazar fuentes monoespacio
Te estarás preguntando que qué son las fuentes monoespacio…
En las fuentes monoespacio, todos los caracteres ocupan el mismo espacio horizontal, de ahí el nombre de «monoespacio». Es decir, una letra corta en píxeles, como la «i», ocupará lo mismo que una letra larga, como la «m»:
- Fuente no monoespacio
- Fuente sí monoespacio
Hasta aquí no hay problema, ¿verdad?
Pues bien, tengo que decirte, mi querido lector, que hay muchas fuentes monoespacio. Tantas, que en esta macro solo he procesado las que he visto en la aplicación Microsoft Word:
- Courier New
- Consolas
- Courier
- Lucida Console
Si quieres incluir alguna más, solo tienes que añadirla a la macro.
Según vimos al principio del artículo, para cada una de estas tipografías monoespacio, la macro de AutoHotkey debe encontrarlas y rodearlas entre 3 tildes graves (`).
Las diferencias del reemplazo de fuentes monoespacio respecto a los reemplazos de negritas, cursivas y tachado son las siguientes:
- Se emplea la propiedad Name del objeto Font. Por ejemplo, mira a la línea 43 para la tipografía Courier New.
- El texto encontrado se rodea por las 3 tildes graves ya mencionadas. En la línea 44, por ejemplo, procesando los textos con Courier New, puedes ver 6 tildes graves al inicio y otras 6 al final. ¡6 tildes (``````) y no 3 (```)!
Te preguntarás por qué, ¿verdad? El motivo es que la tilde grave es un carácter especial en AutoHotkey y debe precederse, como todos los caracteres especiales, por una tilde grave (`). Al final, cada tilde grave se duplica y por eso ves 6 tildes seguidas, pero significan solo 3.
4. Final de la macro
En las líneas 60 y 62 se selecciona todo el texto del documento temporal y se copia al Portapapeles.
La línea 66 cierra automáticamente el documento (el parámetro 0 permite cerrarlo sin guardarlo, ni preguntarte si lo quieres guardar). Como es un documento temporal, simplemente se descarta.
La línea 67 cierra la aplicación de Microsoft Word. No es una línea de adorno, sino muy necesaria, ya que, de otra manera, tendríamos un montón de aplicaciones abiertas de Word, cada una consumiendo sus recursos:

La línea 70 quita todo formato que pudiera tener el contenido del Portapapeles. Esa sencilla línea lo consigue gracias al operador (=), en vez del operador de asignación más habitual (:=).
El Return de la última línea señala el final de esta macro.
Y con eso hemos terminado.
¿Te ves capaz de personalizar la macro a tu gusto?
¡Adelante!
⁂
Descarga de la macro
Si quieres la macro, puedes descargarla con este botón:
⁂
Conclusiones
Hemos visto una aplicación más de AutoHotkey para algo muy en boga ahora como es la mensajería instantánea por WhatsApp.
De esta manera podrás pegar textos desde la web o Word y enviarlos bien formateados por WhatsApp, es decir, manteniendo los formatos de negrita, cursiva, tachado y monoespacio.
Espero que te resulte tan útil como a mí.
⁂
- Lee los otros artículos de AutoHotkey de este mismo blog. Los tienes todos si filtras por «AutoHotkey» en la nube de etiquetas (columna derecha del blog).
- Suscríbete al boletín del blog, o sígueme en LinkedIn o Twitter (@jssprt). De esta manera, serás el primero en enterarte de la publicación de los artículos.