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.

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).

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:

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).

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 FunctionPara 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.
