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