Enviar Whatsapp desde VBA Excel.

En vísperas de enviar todos los buenos deseo para el nuevo año, hoy les dejo un aporte en fase beta de como enviar mensajes de Whatsapp desde VBA Excel usando una tabla ligera y un mensaje uniforme.

El libro esta disponible para su descarga aquí.

1. Antes de Iniciar.

Para que el código funcione de manera adecuada debes tener instalado el buscador Google Chrome en tu PC y ya haber activado Whatsapp Web previamente. Si gustas revisar como hacer eso presiona aquí y sigue las instrucciones que la pagina envía.

2. El libro de trabajo.

Una vez realizado los pasos de arriba, llena la casilla de mensaje (la celda A2) con lo que sea que quieres enviar.

Whatsapp VBA Excel 1

Ahora, completa la tabla con los números de teléfono a los cuales quieres enviar el mensaje. La casilla de nombre solo es para que sepas de quien es el numero jejeje (el orden, ya saben).

Whatsapp VBA Excel 2

Todo esta listo. Presiona el botón de Enviar Whatsapp y mira la delicia de cómo trabaja.

3. La macro.

Por el momento no he encontrado una mejor manera de que funcione que dándole las indicaciones mediante el teclado, por lo que una vez que la macro inicie, veras que aparece un mensaje como el siguiente:

Whatsapp VBA Excel 1

No presiones si hasta que tu Chrome termine de cargar la aplicación Whatsapp y, una vez presiones si, corre a poner tu Chrome en primer plano de tu computadora (o lo que es lo mismo selecciónalo de la barra de tareas).

Whatsapp Web

Es importante no presionar nada, deja que la macro haga su magia buscando el número, escribiendo el mensaje y terminando.

El código lo puedes encontrar más abajo (Muchas gracias a Cristiano por la actualización del codigo).

Sub wapp_texting()
 'Declaracion de variables
 Dim text, contact As String ' Variables de envio
 Dim i As Long 'Variable de itinerancia
 Dim ws As Worksheet ' Variable de hoja de calculo
 Dim wapp As Variant ' Variable de Applicacion
 Set ws = Sheets("WAPP MENSAJERIA")
 If Application.WorksheetFunction.CountA(ws.Range("B5:B1000000")) = 0 Then
     MsgBox "No hay numeros para enviar mensajes", vbOKOnly
     Exit Sub
 End If
 text = ws.Range("A2").Value
 If text = "" Then
     If MsgBox("No ha introducido ningun mensaje. Quiere introducir uno ahora?", vbYesNo, "NO HAY MENSAJE PARA ENVIAR") = vbYes Then
         text = InputBox("Introduzca el mensaje", "MENSAJE A ENVIAR")
     Else
         MsgBox "No se ha podido enviar el mensaje"
         Exit Sub
     End If
 End If
 'Abre Chrome en la ventana de whatsapp web
 Shell ("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe -url https://web.whatsapp.com/") 'Cambiar esta linea si es necesario para encontrar Chrome
 If MsgBox("Presione Si cuando Whatsapp este totalmente cargado y tenga activo Chrome todo el tiempo." & vbNewLine & vbNewLine & "Presione no si Whatsapp no abre en un tiempo considerable", vbYesNo, "Cargando Whatsapp") = vbNo Then
     MsgBox "No se envio nada…"
 Else
     ' Inicia a cargar los mensajes
     Espera (6000)
     i = 0
     Do Until ws.Range("B5").Offset(i, 0) = ""
         Espera (3000)
         contact = ws.Range("B5").Offset(i, 0).Value
         Call SendKeys("{TAB}", True) ' Entra a la barra de busqueda
         Espera (2000)
         Call SendKeys(contact, True) ' Busca el numero de telefono
         Espera (2000)
         Call SendKeys("~", True) ' Entra a la barra de mensajes
         Espera (1000)
         Call SendKeys(text, True) ' Escribe el mensaje
         Espera (1000)
         Call SendKeys("~", True) 'Envia el mensaje
         Call SendKeys("{TAB}", True) ' Entra a la barra de busqueda
         Espera (1000)
         Call SendKeys("{TAB}", True) ' Entra a la barra de busqueda
         Espera (1000)
         Call SendKeys("{TAB}", True) ' Entra a la barra de busqueda
         Espera (1000)
         Call SendKeys("{TAB}", True) ' Entra a la barra de busqueda
         i = i + 1
     Loop
 MsgBox "Mensajes Enviados!" & vbNewLine & vbNewLine & "Revisa tu whatsapp para comprobar los resultados", vbOKOnly, "Fin del procedimiento"
 Set ws = Nothing
 End If
 End Sub
 Function Espera(ByVal tiempo As Double)
 ' Espera en milisegundos
 Application.Wait (Now() + tiempo / 24 / 60 / 60 / 1000)
 End Function

Para que la aplicación espere se usa esta función.

Function Espera(ByVal tiempo As Double)
' Espera en milisegundos
Application.Wait (Now() + tiempo / 24 / 60 / 60 / 1000)
End Function

4. Su uso.

Esta macro puede servirte para enviar muchos mensajes en poco tiempo. Según el código de arriba puedes cambiar los tiempos de espera para poder hacerlo más veloz, aunque según mis test ese tiempo es idóneo para cualquier conexión de internet.

Adicional, asegúrate de que la opción del Shell este direccionando bien a la carpeta donde este guardado Chrome, de otra forma recibirás un mensaje de error o hará locuras.

Si quieres ver otra forma de envíar Whatsapp desde VBA Excel, puedes checar esta entrada tambíen.

Aun la estoy probando por lo que si tienes algún consejo nos vemos en la caja de comentarios. Feliz inicio de ciclo anual para todos.

Enviar Whatsapp desde VBA Excel.
Scroll hacia arriba