Macro para enviar Whatsapp desde Excel. Otra forma de manejar el problema.

Hace ya un buen tiempo, escribí una entrada sobre como podías programar una macro para enviar mensajes desde Whatsapp Web usando Excel. Esta no requiere un API de inicio, ya que utiliza los comandos KEY para trabajar.

Si quieres ver la entrada anterior, puedes hacer click aquí.

Hoy, vamos a ver una segunda forma de hacerlo, pero en esta ocasión utilizando la aplicación de escritorio y los links dinámicos.

Descarga el libro de trabajo desde el siguiente enlace.

La teoría del link.

Al parecer Whatsapp puede enviar mensajes dinámicos usando un link construido de la siguiente forma:

https://wa.me/telefono?text=texto+espacios+asi   

Su origen lo desconozco, pero parece ser que era para algunas aplicaciones sencillas. Este link se abre en el explorador de la PC y ejecuta un comando para iniciar Whatsapp de escritorio. El texto que viene entre los símbolos es el texto por utilizar y el numero viene inmerso de igual forma.

Tomando esto como ejemplo, necesitamos tener tres programas instalados en la computadora.

  • Excel (ooobvio)
  • Chrome (es el más estable que encontré)
  • Whatsapp desktop (que puedes descargar aquí)

Ahora, vamos al libro de trabajo.

La tabla por utilizar en Excel.

En Excel la construcción es bastante simple, solo crearemos 3 columnas en nuestra hoja con los siguientes datos.

Las dos primeras columnas son datos que deberemos capturar, mientras que el tercero es una función concatenado + sustituir como sigue:

="https://wa.me/"&[@Numero]&"?text="&SUBSTITUTE([@Mensaje]," ","+")

Con estos datos, pasaremos a crear nuestra macro para enviar los mensajes.

Macro para enviar Whatsapp.

El código utilizar la función Shell para llamar al explorador, pasarle como URL el valor de la columna URL y correr un loop para cada fila.

Sub wapp_links()
 'Declaracion de variables
 Dim text, contact As String ' Variables de envio
 Dim i As Long, pausa As Long 'Variable de itinerancia
 Dim ws As Worksheet ' Variable de hoja de calculo
 Dim wapp As Variant ' Variable de Applicacion
 Dim rng As Range
 Set ws = Sheets("WAPP URL")
 Set rng = ws.Range("A6")
 pausa = ws.Range("B3").Value * 1000
 If Application.WorksheetFunction.CountA(ws.Range("A6:A1000000")) = 0 Then
     MsgBox "No hay URLS para seleccionar", vbOKOnly
     Exit Sub
 End If
 'Abre Chrome para ejecutar los URL
 Do Until rng.Offset(i, 0) = ""
     text = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe -url " & rng.Offset(i, 0) 'Cambiar esta linea si es necesario para encontrar Chrome
     Shell (text)
     Espera (pausa)
     Call SendKeys("~", True) 'Envia el mensaje
     i = i + 1
 Loop
 Shell "taskkill /IM chrome.exe /F"
 MsgBox "Mensajes Enviados!" & vbNewLine & vbNewLine & "Revisa tu whatsapp para comprobar los resultados", vbOKOnly, "Fin del procedimiento"
 Set ws = Nothing
 End Sub

Adicional, añadiremos la función ESPERA a la macro para darle tiempo suficiente de correr los links.

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

Cabe destacar que no pude evitar el uso de los KEY del teclado, pero al menos esta vez ya son menos indispensables.

Como puedes ver, la macro creara la ventana de Chrome con el link, lo que nos abrirá el Whatsapp de escritorio y presionara ENTER para enviar el mensaje.

Macro enviar Whatsapp Excel

Una mejora importante que se podría crear seria utilizar algunos tags dentro de los textos para cambiar por algunas columnas adicionales, como el nombre del usuario y algún dato variable según dependa la situación.

Esta es otra manera de poder enviar mensajes sin tener que pagar el API de Whatsapp, en realidad no es muy sofisticado, pero cuando se trata de pagar en dólares, siempre podemos hacer pruebas antes de contratar el servicio oficial.

Cualquier duda nos leemos abajo.

Macro para enviar Whatsapp desde Excel. Otra forma de manejar el problema.
Scroll hacia arriba