
Compartir:
Michael Crump trabaja en Vonage en el equipo de experiencias para desarrolladores y es programador, YouTuber y conferenciante habitual sobre diversos temas de desarrollo de .NET, la nube y las comunicaciones. Le apasiona ayudar a los desarrolladores a comprender las ventajas de cada uno de ellos de una forma sencilla.
Enviar un SMS desde una hoja de cálculo Excel
Actualización (junio de 2026): Esta entrada se ha actualizado para reflejar el punto final actual de la SMS API de Vonage, las directrices de autenticación actualizadas y las mejores prácticas de seguridad.
Introducción
Microsoft ofrece una forma de añadir nuevas funcionalidades a las aplicaciones de Office, como Microsoft Excel, para solicitar información al usuario e interactuar con él de manera específica según las necesidades de tu empresa. Puede realizar estas tareas de forma más eficiente utilizando Visual Basic para Applications (VBA). Se trata de un lenguaje de programación sencillo pero potente que puede utilizar para realizar acciones como importar sus contactos de Microsoft Outlook a una hoja de cálculo de Microsoft Excel.
En esta entrada del blog, utilizaremos VBA en Microsoft Excel para enviar un mensaje SMS. Solo tienes que introducir el número de móvil y el texto que quieras enviar, y luego pulsar un botón para enviarlo. Puedes modificar el código para añadir funciones adicionales que tu empresa pueda necesitar, como la programación de envíos. ¡Empecemos!
Requisitos previos
Antes de empezar, necesitarás:
A account de la API de Vonage : una vez que la hayas creado, encontrarás tu clave API y el secreto de la API en el panel de control de la API de Vonage en la sección «Configuración de la API»
Un número virtual de Vonage desde el que enviar mensajes; puedes adquirir uno en Numbers > Comprar números en el panel de control
Microsoft Excel (cualquier versión reciente que admita VBA)
Nota de seguridad: Tu clave API y tu secreto API son datos confidenciales. Nunca compartas tu hoja de cálculo con estos valores rellenados, y nunca los subas al control de código fuente. Trátalos igual que tratarías una contraseña.
SMS API de Vonage frente a la Messages API
Vonage dispone de dos API para enviar SMS: la API dedicada SMS API y la API multicanal Messages API. La SMS API es sencilla y se adapta perfectamente a este caso de uso, ya que estamos llamando a un punto final REST directamente desde VBA. Si más adelante quieres ampliar la integración a WhatsApp, MMS o RCS desde la misma integración, merece la pena explorar la Messages API.
Para este tutorial, utilizaremos la SMS API.
Configuración de tu hoja de cálculo de Excel
Como se ha señalado anteriormente, Microsoft Excel puede utilizar VBA para interactuar con los datos mediante programación. Empecemos creando una hoja de cálculo con un par de filas de datos, que contengan los números a los que queremos enviar mensajes de texto y los mensajes que queremos enviar.
Estructura tu hoja de Excel de la siguiente manera:
A1 y A2 — los números de teléfono móvil a los que enviar los mensajes (en formato E.164, p. ej., 14255551234)
B1 y B2 — los mensajes de texto que quieres enviar
I1 — tu clave API de Vonage
I2 — tu clave secreta de la API de Vonage
I3 — tu número virtual de Vonage (el número que has adquirido en el panel de control, p. ej., 18335550100)
I4 — será el botón «Enviar SMS» (del que hablaremos en breve)
Ponle un nombre a tu hoja de cálculo, por ejemplo Numbers.
Consejo: Considera la posibilidad de proteger las celdas I1–I3 con una contraseña de hoja para que las credenciales no se modifiquen accidentalmente ni sean visibles para otras personas que abran el archivo.
Ahora deberías tener una pantalla parecida a la siguiente.
ExcelStart.png
Activación y configuración del modo de desarrollador en Microsoft Excel
Necesitamos añadir una opción para ver el Desarrollador para utilizar VBA. Puede activar esta opción yendo a Archivo -> Opciones -> Personalizar cinta y marcando la opción Desarrollador como se muestra a continuación.
ExcelDevMode.png
La opción de menú «Desarrollador» debería aparecer ahora en la barra de menús. Selecciónala y, a continuación, elige Visual Basic para abrir el editor de código.
VisualBasic.png
Aparecerá una nueva ventana con Microsoft Visual Basic for Applications en ejecución. Selecciona Insertar en las opciones del menú y elige Módulo para introducir el código de Visual Basic que interactúa con la hoja de Excel.
NewModule.png
Incorporación de la referencia de Microsoft XML 6.0
Tenemos que añadir una referencia al biblioteca Microsoft XML 6.0 , que nos permite llamar a un punto final REST desde VBA. En el editor de Visual Basic, ve a Herramientas → Referencias, desplázate hacia abajo hasta encontrar Microsoft XML, v6.0, marca la casilla y haz clic en Aceptar.
AddReference.png
El código VBA
Copia y pega el siguiente bloque de código en tu aplicación y fíjate en los comentarios que he dejado que describen lo que hace cada sección.
Sub SendSMS()
' Authentication - read credentials from the spreadsheet
Dim ApiKey As String
Dim ApiSecret As String
Dim FromNumber As String
ApiKey = ActiveSheet.Range("I1").Value
ApiSecret = ActiveSheet.Range("I2").Value
FromNumber = ActiveSheet.Range("I3").Value ' Your Vonage virtual number
' Define our Worksheet so we can loop through the data
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Worksheets("Numbers")
' Dynamically determine the last row with data in column A
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' Loop through all rows with data
Dim i As Long
For i = 1 To lastRow
Dim toNumber As String
Dim bodyText As String
toNumber = ws.Range("A" & i).Value ' The number to text
bodyText = ws.Range("B" & i).Value ' The message to send
' Use Microsoft's XML Library to make a web request
Dim Request As Object
Set Request = CreateObject("MSXML2.ServerXMLHTTP.6.0")
' Vonage SMS API endpoint
Dim Url As String
Url = "https://rest.nexmo.com/sms/json"
' Open POST request
Request.Open "POST", Url, False
' Set the request header for form-encoded data
Request.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
' Build the POST body with required fields
' Credentials are sent in the POST body, NOT in the URL
Dim PostBody As String
PostBody = "from=" & FromNumber & _
"&to=" & toNumber & _
"&text=" & bodyText & _
"&api_key=" & ApiKey & _
"&api_secret=" & ApiSecret
' Send the request
Request.send PostBody
' OPTIONAL: Show the API response for each message sent
' MsgBox Request.responseText
Next i
MsgBox "Done! " & lastRow & " message(s) sent."
End SubHay algunos aspectos que merece la pena destacar en esta versión actualizada:
Las credenciales se envían en el cuerpo de la solicitud POST, no se añaden a la URL. Este es el método correcto y más seguro, ya que las URL pueden acabar en los registros del servidor, el historial del navegador y las cachés de los proxies.
El de número ahora se lee de la celda I3 en lugar de estar fijado de forma estática. Introduce aquí tu propio número virtual de Vonage.
Ahora el bucle es dinámico — utiliza xlUp para encontrar la última fila con datos en la columna A, por lo que no estás limitado a dos filas. Añade tantos números y mensajes como necesites.
Añadir el botón «Enviar»
Por último, tenemos que añadir un botón para activar esta macro. Selecciona «Insertar» en el menú «Desarrollador», haz clic en «Botón» y colócalo en la celda I4.
En cuanto sueltes el ratón, se te pedirá que asignar una macro a ese botón. Selecciona la opción macro «SendSMS» que acabamos de pegar y pulsa Aceptar. Asigna al botón un nombre como «Enviar SMS».
ExcelButton.png
Probándolo
Asegúrate de tener:
Un número de teléfono válido en formato E.164 en A1 (y en A2 si se prueban dos filas), por ejemplo: 14255551234
Un mensaje en B1 (y B2)
Tu clave API en I1, tu secreto API en I2 y tu número virtual de Vonage en I3
A continuación, pulsa el botón «Enviar SMS» . Si todo está configurado correctamente, aparecerá un cuadro de diálogo de confirmación y, poco después, debería llegar un mensaje de texto al teléfono de destino.
Si quieres examinar la respuesta sin procesar de la API, descomenta el línea MsgBox Request.responseText . Una respuesta correcta tiene este aspecto:
{
"mensajes": [
{
"para": "14259999999",
"message-id": "3c153507-8ade-4bd1-ab6f-12cb6f7f9efe",
"status": "0",
"saldo-restante": "39,08381985",
"precio-del-mensaje": "0,00869000",
"red": "310260"
}
],
"message-count": "1"
}Ten en cuenta que status: «0» significa que el mensaje se ha puesto en cola correctamente para su entrega.
Recapitulación
En esta entrada del blog, hemos utilizado VBA en Microsoft Excel para enviar mensajes SMS a través de la SMS API de Vonage. Con solo una hoja de cálculo y unas pocas líneas de código, puedes enviar mensajes personalizados a una lista de contactos con solo hacer clic en un botón, sin necesidad de un servidor específico.
A partir de aquí, podrías ampliarlo aún más de las siguientes maneras:
Añadir una columna de fecha y hora que registre cuándo se envió cada mensaje
Incorporación de el manejo de errores para detectar los envíos fallidos y resaltar esas filas en rojo
Descubre la Messages API de Vonage si quieres ampliar tu servicio a WhatsApp o RCS desde la misma configuración
¿Tiene alguna pregunta o quiere compartir lo que está construyendo?
Suscríbase al Boletín para desarrolladores
Síguenos en X (antes Twitter) para estar al día
Ver tutoriales en nuestro canal de YouTube
Conéctese con nosotros en la página Vonage Developer en LinkedIn
Mantente conectado y entérate de las últimas noticias, consejos y eventos para desarrolladores.
Compartir:
Michael Crump trabaja en Vonage en el equipo de experiencias para desarrolladores y es programador, YouTuber y conferenciante habitual sobre diversos temas de desarrollo de .NET, la nube y las comunicaciones. Le apasiona ayudar a los desarrolladores a comprender las ventajas de cada uno de ellos de una forma sencilla.