whatsapp

Macro de Excel para enviar WhatsApp: tutorial paso a paso

octubre 11, 2026 Tuto Excel 13 min read
Macro de Excel para enviar WhatsApp: tutorial paso a paso

Mandar un WhatsApp desde una macro de Excel es mucho más sencillo de lo que parece: no hace falta programar un envío real, basta con armar el enlace que usa WhatsApp Web y abrirlo en el navegador. En este tutorial usaremos VBA para construir ese enlace a partir de los teléfonos y mensajes guardados en una hoja, y le añadiremos un botón para hacerlo con un clic. Funciona en Excel para Microsoft 365, 2024, 2021, 2019 y 2016; en Excel para la web no se pueden ejecutar macros VBA.

Qué puede hacer Excel con WhatsApp y qué no

Excel no envía mensajes de WhatsApp por sí mismo. Lo que sí puede hacer es abrir el chat correspondiente con el texto ya escrito dentro, listo para que el usuario pulse la flecha verde de envío. Esto se consigue con la URL https://wa.me/, que WhatsApp reconoce en cualquier navegador: al hacer clic, abre WhatsApp Web (o la app, si está instalada) en el chat con ese número y con el mensaje prearmado.

A partir de ahí hay tres niveles. El más simple es abrir WhatsApp Web desde un enlace calculado en una celda, sin tocar el código. El siguiente es una macro en VBA que arma ese mismo enlace y lo abre con FollowHyperlink, lo que permite recorrer una lista y mandar el mismo aviso a varios clientes con un solo clic. El tercero, ya fuera del alcance de VBA, es conectar Excel con un bot real: la API de WhatsApp Business, proveedores como Twilio o plataformas bancarias; ahí Excel solo aporta los datos y el envío lo hace el proveedor.

Nota: Todo lo que se explica aquí abre el chat con el mensaje; nadie pulsa la tecla de envío por ti.

Lo que tienes a mano antes de escribir una macro

Para escribir una macro necesitas dos cosas: la pestaña Programador, que viene oculta, y guardar el archivo como .xlsm, que es el formato que conserva el código. El editor donde se escribe VBA se abre con Alt+F11 y desde ahí se insertan módulos con Insertar > Módulo. Una vez tengas la macro, la cinta de opciones y la barra de herramientas de acceso rápido te dejan asignarla a un botón.

La seguridad también importa: Excel bloquea por defecto las macros de los archivos descargados de internet, así que si recibes un .xlsm por correo o lo bajas de la web, tienes que desbloquearlo desde sus Propiedades (clic derecho sobre el archivo > Propiedades > Desbloquear) antes de que los botones funcionen.

Nota: Si guardas el archivo como .xlsx, las macros se borran en silencio al guardar y no entenderás por qué desapareció el botón.

Activar la pestaña Programador y abrir el editor de VBA

  1. Clic en Archivo > Opciones.
  2. En el cuadro Opciones de Excel, elige Personalizar cinta de opciones.
  3. En la columna de la derecha, marca la casilla Programador y pulsa Aceptar.
  4. Pulsa Alt+F11 para abrir el editor de Visual Basic.
  5. En el árbol de la izquierda, clic derecho sobre el libro > Insertar > Módulo.
ArchivoOpcionesPersonalizar cinta de opcionesProgramador

El cuadro Guardar como y el formato .xlsm

  1. Pulsa F12 para abrir Guardar como.
  2. Elige la carpeta y el nombre del archivo.
  3. En Tipo, selecciona Libro de Excel habilitado para macros.
  4. Pulsa Guardar.
Nota: La extensión del archivo debe ser .xlsm; con .xlsx el código VBA se descarta al guardar.

Mandar un WhatsApp a un número fijo con un clic

Vamos a trabajar con una hoja llamada Clientes: cinco personas con su nombre, su teléfono con código de país y el mensaje que se les quiere mandar. La macro leerá la fila activa, juntará el teléfono y el texto en una URL de WhatsApp y la abrirá en el navegador con FollowHyperlink. Después le pondremos un botón en la hoja para no tener que abrir el editor cada vez.

Preparar la hoja con los datos del mensaje

A1fx**Cliente**
A B C
1 Cliente Teléfono Mensaje
2 Lucía Pérez 5491155551234 Hola Lucía, tu pedido está listo
3 Carlos Ruiz 34665544332 Hola Carlos, te confirmo la cita del martes
4 Ana Torres 51987654321 Ana, recordatorio: mañana cerramos a las 14
5 Pedro Gómez 573112223344 Pedro, gracias por tu compra de hoy
6 María López 541144556677 María, tu transferencia fue recibida
Clientes
Comprueba: En B2 ves 5491155551234, con el 54 de Argentina delante; sin ese prefijo, WhatsApp no sabe a qué país mandar el mensaje.

La macro que arma el enlace wa.me

Sub EnviarWhatsApp()
    Dim celda As Range
    Dim numero As String
    Dim texto As String
    Dim enlace As String
    
    For Each celda In Selection.Rows
        numero = CStr(celda.Cells(1, 2).Value)
        texto = CStr(celda.Cells(1, 3).Value)
        texto = WorksheetFunction.EncodeURL(texto)
        enlace = "https://wa.me/" & numero & "?text=" & texto
        ActiveWorkbook.FollowHyperlink enlace
    Next celda
End Sub

Se abre el navegador en la pestaña de WhatsApp Web con el chat del número elegido y el mensaje cargado en el cuadro de texto, listo para pulsar la flecha de envío.
Nota: WorksheetFunction.EncodeURL existe desde Excel 2013; si tu versión es anterior, mira el arreglo con el bucle manual que se explica más abajo.

Poner un botón en la hoja que ejecute la macro

  1. Ve a la pestaña Clientes.
  2. Asegúrate de tener la pestaña Programador visible.
  3. Clic en Programador > Controles > Insertar > Botón (control de formulario).
  4. Dibuja el botón en la celda que prefieras.
  5. En el cuadro Asignar macro, elige EnviarWhatsApp y pulsa Aceptar.
  6. Selecciona una fila completa de la tabla (por ejemplo A2:C2) y pulsa el botón.
ProgramadorControlesInsertarBotón (control de formulario)
Comprueba: Al pulsar el botón se abre WhatsApp Web con el chat del cliente de la fila y el texto cargado.

Mandar el mismo mensaje a toda la lista

Para enviar el mismo aviso a todos, una variante es recorrer el rango B2:B6, concatenar todos los números en una sola URL separada por saltos de línea y abrirla de una vez. Útil para recordatorios generales.

D2fx=B2
A B C D
1 Cliente Teléfono Mensaje Para envío masivo
2 Lucía Pérez 5491155551234 Recordatorio: cita mañana 5491155551234
3 Carlos Ruiz 34665544332 Recordatorio: cita mañana 34665544332
4 Ana Torres 51987654321 Recordatorio: cita mañana 51987654321
5 Pedro Gómez 573112223344 Recordatorio: cita mañana 573112223344
6 María López 541144556677 Recordatorio: cita mañana 541144556677
Clientes

Sub EnviarATodos()
    Dim i As Long, ultimo As Long
    Dim numero As String, texto As String, enlace As String
    Dim lista As String
    
    texto = WorksheetFunction.EncodeURL("Recordatorio: cita mañana")
    lista = ""
    ultimo = Cells(Rows.Count, 2).End(xlUp).Row
    
    For i = 2 To ultimo
        numero = CStr(Cells(i, 2).Value)
        lista = lista & numero & "%0A"
    Next i
    
    enlace = "https://wa.me/" & Left(lista, Len(lista) - 3) & "?text=" & texto
    ActiveWorkbook.FollowHyperlink enlace
End Sub
Comprueba: Al ejecutar, el navegador muestra la URL con todos los teléfonos concatenados y WhatsApp Web abre el primero de la lista.

Pasar de Excel al chat con la web de WhatsApp a mano

Si prefieres no escribir una macro, puedes dejar el enlace ya armado en una celda con la función UNIRCADENAS y abrirlo tú mismo en el navegador. Es la opción más limpia para usuarios que no quieren tocar VBA o que usan Excel para la web.

Armar el enlace en una celda con la función UNIRCADENAS

D2fx=UNIRCADENAS("";FALSO;"https://wa.me/";B2;"?text=";C2)
A B C D
1 Cliente Teléfono Mensaje Enlace
2 Lucía Pérez 5491155551234 Hola Lucía https://wa.me/5491155551234?text=Hola%20Luc%C3%ADa
3 Carlos Ruiz 34665544332 Hola Carlos https://wa.me/34665544332?text=Hola%20Carlos
Clientes
  1. Escribe en D2 la fórmula indicada.
  2. Arrastra el controlador de relleno hasta D6.
  3. Clic en una celda de la columna D y pulsa Ctrl+C.
  4. Pega el enlace en la barra de direcciones del navegador y pulsa Entrar.

=UNIRCADENAS("";FALSO;"https://wa.me/";B2;"?text=";C2)
Comprueba: El enlace de D2 empieza por https://wa.me/5491... y, al pegarlo en el navegador, abre WhatsApp Web con el chat cargado.
Nota: UNIRCADENAS está en Excel 2019, 2021, 2024 y Microsoft 365; en versiones anteriores se reemplaza por una concatenación simple con &.

Por qué la macro no abre WhatsApp o sale el mensaje en blanco

Las tres causas más habituales son el código de país que falta, los caracteres especiales mal codificados y la macro que no está donde el botón la busca. Veamos cada una con su arreglo concreto.

El número no tiene código de país y la página no carga

B2fx=SI(ESNUMERO(VAL(IZQUIERDA(B2;2)));B2;"Falta código de país")
A B
1 Cliente Teléfono
2 Lucía Pérez 1155551234
3 Carlos Ruiz 34665544332
Clientes

En B2 falta el 54 de Argentina: la URL queda como https://wa.me/1155551234, que WhatsApp no reconoce. Se detecta con un SI que comprueba si los dos primeros caracteres son numéricos.

El texto del mensaje rompe el enlace por las tildes o los saltos de línea

Function CodificarURL(texto As String) As String
    Dim i As Long, c As String, salida As String
    Dim codigo As Long
    Const caracteres = "áéíóúÁÉÍÓÚñÑüÜ¡¿"
    For i = 1 To Len(texto)
        c = Mid(texto, i, 1)
        If InStr(caracteres, c) > 0 Then
            codigo = AscW(c)
            salida = salida & "%" & Hex((codigo \ 256) And &HFF) & "%" & Hex(codigo And &HFF)
        Else
            salida = salida & c
        End If
    Next i
    CodificarURL = salida
End Function

WorksheetFunction.EncodeURL no existe en Excel 2010 ni 2013 (sí desde 2013 según compilación) y a veces falla con caracteres como la ñ. Esta función casera reemplaza cada carácter especial por su código %XX.

La macro no aparece al pulsar el botón

Tres cosas a revisar: que el archivo sea .xlsm y no .xlsx; que las macros no estén deshabilitadas (Centro de confianza > Configuración de macros); y que el botón esté asignado a EnviarWhatsApp haciendo clic derecho sobre él > Asignar macro.

Conectar Excel con un bot de WhatsApp o la API de un banco

VBA llega hasta donde llega: arma el enlace y abre el chat, pero la pulsación final de la tecla Enviar la hace una persona. Para enviar WhatsApp de verdad, sin intervención manual, hace falta un socio externo: la API de WhatsApp Business, accesible a través de proveedores como Twilio, MessageBird o 360dialog, o plataformas ya integradas en bancos de distintos países.

En Argentina, el banco Macro ofrece MacroChat para avisos y consultas desde la app; en Perú, Mibanco integra WhatsApp para notificaciones de crédito y cobranza; en Brasil, distintos bancos han incorporado asistentes con IA generativa dentro de WhatsApp. En todos los casos, Excel aporta la base de teléfonos y mensajes, y el envío real lo hace la plataforma del banco o del proveedor, que se conecta a la API oficial.

Nota: La API de WhatsApp Business exige registrar una cuenta de empresa, aprobar plantillas de mensaje y pagar por conversación; VBA no puede saltarse ninguno de esos pasos.

Lo que VBA hace y lo que necesita un socio externo

  • VBA abre el chat con el mensaje prearmado; el envío lo hace el usuario con un clic.
  • La API de WhatsApp Business envía el mensaje de verdad y devuelve un identificador de entrega.
  • Un proveedor como Twilio se encarga de la conexión con la API, de las plantillas y de la facturación.
  • Un banco con bot conversacional (MacroChat, Mibanco, bancos brasileños) ya tiene la integración lista y solo necesita los datos del cliente.
  • Para respuestas automáticas o bots que lean lo que contesta el cliente, hace falta además un webhook: VBA no puede escucharlo.

Lo que ya sabes hacer con Excel y WhatsApp

  • Armar el mensaje a partir del nombre, el teléfono y un texto guardado en columnas.
  • Abrir el chat correspondiente en WhatsApp Web con un solo clic en un botón.
  • Mandar el mismo aviso a toda la lista con una variante de la macro que concatena números.
  • Dejar el enlace listo en una celda con UNIRCADENAS, sin tocar VBA, para pegarlo a mano en el navegador.

El siguiente paso, si necesitas que el mensaje se envíe solo y que el sistema registre la respuesta, es dar el salto a la API de WhatsApp Business a través de un proveedor certificado: ahí Excel pasa a ser solo la fuente de los datos y el envío lo garantiza la plataforma externa.

Datos comprobados en octubre de 2026.

Dudas al usar macros de WhatsApp en Excel

1. ¿Cómo enviar un mensaje de WhatsApp desde una macro de Excel?

Abre el libro donde está VBA (Alt+F11), crea un módulo en Insertar > Módulo y pega una sub que abra la URL https://api.whatsapp.com/send?phone=NUMERO&text=MENSAJE con el método FollowHyperlink del objeto Workbook. Cada vez que la ejecutes con F5, el sistema abrirá WhatsApp Web o la app con el chat ya cargado y el texto listo para enviar.

2. ¿La macro de WhatsApp que se baja de internet es segura?

No hay forma de garantizarlo sin revisar el código: cualquier persona con permisos de macros puede ejecutar archivos que borren archivos, roben contraseñas o instalen malware. Antes de ejecutar una macro descargada, ábrela con Alt+F11 y verifica que solo use FollowHyperlink o Shell para abrir el navegador; si ves Shell, Environ("TEMP") o referencias a URLSearchGuide, no la uses.

3. ¿Puedo cambiar el número de teléfono en la macro de WhatsApp?

Sí, porque el número va como parámetro en la propia URL. Modifica la línea que dice phone= escribiendo el código de país sin el signo + y el número junto, por ejemplo phone=5491155554444 para Argentina. Conviene guardar el número en una celda, por ejemplo B1, y concatenar en la fórmula con &B1 para no tocar el código cada vez.

4. ¿Cómo abrir el módulo donde se escribe la macro en Excel?

Pulsa Alt+F11 para entrar al editor; en el árbol de la izquierda, haz clic derecho sobre el nombre del libro y elige Insertar > Módulo. Aparecerá una ventana en blanco a la derecha donde se pega el código de la macro. Para volver a la hoja y ejecutarla, pulsa Alt+F11 otra vez o Alt+Q.

5. ¿Por qué la macro de WhatsApp no me abre el chat?

Lo más habitual es que el número esté mal escrito: debe llevar el código de país sin el signo + ni los ceros delante, por ejemplo 5491155554444 y no +54 9 11 5555 4444. También puede fallar si Excel no tiene un navegador configurado como predeterminado o si bloqueas las macros: habilítalas en Archivo > Opciones > Centro de confianza > Configuración > Configuración de macros.

6. ¿Qué delimitador de argumentos usa VBA en español?

VBA siempre usa la coma como separador aunque Excel esté en español, porque sigue las reglas del idioma inglés. Lo verás en cualquier MsgBox "Hola", vbInformation o en el argumento en .FormulaA1 = "=SUMA(A1:A10)". La traducción al español solo afecta a las fórmulas escritas en celdas, no al código VBA.

7. ¿Necesito tener WhatsApp instalado para que la macro funcione?

No es imprescindible: si tienes sesión abierta en WhatsApp Web en el navegador, la macro abrirá una pestaña nueva y enviará el mensaje. Si no hay sesión abierta, abrirá la pantalla de login y pedirá escanear el código QR con el móvil. En el móvil, la URL api.whatsapp.com abre directamente la app instalada.

8. ¿Puedo enviar el mensaje a varios contactos desde una macro?

Sí, recorriendo una columna con un bucle For Each: lee cada fila de la hoja, concatena el nombre y el teléfono y llama a la sub principal dentro del mismo bucle. Como cada iteración abre una pestaña nueva del navegador, el ritmo lo marcas con Application.Wait Now + TimeValue("00:00:02") para que no se acumulen llamadas.

Fuentes

  1. MicrosoftEl editor de VBA y la primera macro — documentación oficialconsultado el 05/10/2026
  2. MicrosoftAtajos que funcionan igual en cualquier idioma — documentación oficialconsultado el 05/10/2026
  3. MicrosoftFormatos de archivo de Excel — documentación oficialconsultado el 05/10/2026