https://d226lax1qjow5r.cloudfront.net/blog/blogposts/send-an-sms-message-from-an-excel-spreadsheet/sms-excel.png

Senden einer SMS-Nachricht aus einer Excel-Tabelle

Zuletzt aktualisiert am February 2, 2023

Lesedauer: 5 Minuten

Einführung

Microsoft bietet eine Möglichkeit, Office-Anwendungen wie Microsoft Excel neue Funktionen hinzuzufügen, um den Benutzer auf eine Weise zu führen und mit ihm zu interagieren, die speziell auf Ihre Geschäftsanforderungen zugeschnitten ist. Mit Visual Basic for Applications (VBA) können Sie diese Aufgaben erfüllen und noch mehr erreichen. Dabei handelt es sich um eine einfache, aber leistungsstarke Programmiersprache, mit der Sie z. B. Ihre Kontakte aus Microsoft Outlook in eine Microsoft Excel-Tabelle übertragen können.

In diesem Blogbeitrag werden wir VBA in Microsoft Excel verwenden, um eine SMS-Nachricht zu versenden. Geben Sie einfach die Handynummer und den zu versendenden Text ein und drücken Sie eine Schaltfläche, um die Nachricht zu versenden! Sie können den Code ändern, um zusätzliche Funktionen hinzuzufügen, die Ihr Unternehmen benötigt, wie z. B. die Terminplanung. Fangen wir an!

Erstellen eines Vonage Developer Accounts

Wir müssen ein Vonage Entwickler Account um SMS-Nachrichten von Vonage zu versenden. Sobald Sie einen Account erstellt haben, finden Sie Ihren API-Schlüssel und Ihr API-Geheimnis auf dem Vonage-API-Dashboard unter API-Einstellungen. Sobald Sie diese Werte haben, bewahren Sie sie an einem sicheren Ort auf, da wir sie in Kürze verwenden werden.

Weitere Informationen finden Sie in der Vonage SMS API-Dokumentation

Bevor wir mit der Codierung beginnen, sollten wir zunächst die Vonage SMS API-Dokumentation zu Rate ziehen, um herauszufinden, welche Felder die API von uns erwartet, wenn wir sie aufrufen. Aus der Dokumentation geht hervor, dass mehrere Programmier-SDKs unterstützt werden. Da Excel nur VBA verwendet, müssen wir den REST-Endpunkt aufrufen, den Vonage bereitstellt.

Nach Prüfung des REST-Codeausschnitts können wir feststellen, dass es mehrere erforderliche Felder gibt, wie z. B.:

  • A from Nummer

  • A to Nummer

  • Die text die Sie senden möchten.

  • Eine api_key und api_secret, die Sie aus dem obigen Schritt haben sollten.

Das nachstehende cURL-Beispiel zeigt, wie es beim Aufruf aussieht.

curl -X "POST" "https://rest.nexmo.com/sms/json" \ -d "from=$VONAGE_BRAND_NAME" \ -d "text=A text message sent using the Vonage SMS API" \ -d "to=$TO_NUMBER" \ -d "api_key=$VONAGE_API_KEY" \ -d "api_secret=$VONAGE_API_SECRET"

Wenn Sie diesen Code mit gültigen Informationen und Anmeldedaten ausführen, wird die folgende Ausgabe in Ihrem Terminal angezeigt:

{
  "messages": [
    {
      "to": "14259999999",
      "message-id": "3c153507-8ade-4bd1-ab6f-12cb6f7f9efe",
      "status": "0",
      "remaining-balance": "39.08381985",
      "message-price": "0.00869000",
      "network": "310260"
    }
  ],
  "message-count": "1"
}

Beachten Sie, dass status einen Statuscode von 0 zurückgibt, was bedeutet, dass es erfolgreich gesendet wurde. Wenn Sie die Nachricht an Ihre Telefonnummer gesendet haben, sollte eine Textnachricht erscheinen. Als Nächstes wollen wir Microsoft Excel einrichten.

Einrichten unserer Excel-Tabelle

Wie bereits erwähnt, kann Microsoft Excel mithilfe von VBA (Visual Basic for Applications) programmatisch mit den Daten interagieren. Beginnen wir mit der Erstellung eines Arbeitsblatts mit einigen Datenzeilen, die die Nummern enthalten, an die wir die Textnachrichten senden wollen, sowie die Nachricht, die wir senden wollen.

Beginnen wir mit der Erstellung eines Arbeitsblatts mit einigen Datenzeilen, die die Nummer enthalten, an die wir die Textnachricht senden wollen, sowie die Nachricht, die wir senden wollen.

Strukturieren Sie Ihre Excel-Tabelle wie folgt:

  • A1 und A2 enthalten die Nummern der Mobiltelefone.

  • B1 und B2 enthalten den zu versendenden Text.

  • H1 wird den Text "API-Schlüssel" enthalten.

  • H2 wird den Text "API Secret" enthalten.

  • I1 ist Ihr API-Schlüssel aus dem Vonage API Dashboard.

  • I2 ist Ihr API-Geheimnis aus dem Vonage API Dashboard.

  • I3 wird eine Schaltfläche mit der Aufschrift "SMS senden" sein (ich werde die Erstellung der Schaltfläche in Kürze erläutern).

  • Geben Sie Ihrem Arbeitsblatt einen Namen, z. B. Numbers.

Sie sollten nun einen Bildschirm sehen, der wie der folgende aussieht.

Excel with sample dataExcelStart.png

Aktivieren und Konfigurieren des Entwicklermodus in Microsoft Excel

Wir müssen eine Option hinzufügen, um die Entwickler die Option VBA zu verwenden. Sie können diese Option aktivieren, indem Sie zu Datei -> Optionen -> Multifunktionsleiste anpassen und setzen Sie ein Häkchen in das Feld Entwickler Option, wie unten gezeigt.

Excel Dev ModeExcelDevMode.png

Die Entwickler sollte jetzt in der Menüleiste angezeigt werden. Wählen Sie ihn aus und dann die Option Visuelles Basic um die Eingabe von Code in das System zu ermöglichen.

Visual Basic OptionVisualBasic.png

Es erscheint ein neues Fenster, in dem Microsoft Visual Basic for Applications läuft. Wählen Sie . Einfügen aus den Menüoptionen und wählen Sie Modul um Visual Basic-Code einzugeben, der mit dem Excel-Blatt interagiert.

Excel New ModuleNewModule.png

Wir müssen eine Verweis auf den Microsoft XML 6.0 Bibliothek hinzufügen, die es uns ermöglicht, einen REST-Endpunkt aufzurufen. Gehen Sie zu Werkzeuge -> Referenz und prüfen Sie Microsoft XML, v6.0wie unten gezeigt:

Add Reference DialogAddReference.png

Hinzufügen von VBA-Code zum Aufrufen der Vonage SMS API

Kopieren Sie den folgenden Codeblock und fügen Sie ihn in Ihre Anwendung ein. Beachten Sie dabei die Kommentare, die ich hinterlassen habe und die beschreiben, was die einzelnen Abschnitte tun.

Sub SendSMS()

'Authentication
ApiKey = ActiveSheet.Range("I1").Value
ApiSecret = ActiveSheet.Range("I2").Value

'Define our Worksheet so we can loop through the data for the number and message to send. 
Dim wb As Workbook
Dim ws As Worksheet

Set wb = ThisWorkbook
Set ws = wb.Worksheets("Numbers")

'Loop through Worksheet content - I only had two rows in this example, but you can modify this to your needs. 
For i = 1 To 2
   toNumber = ws.Range("A" & i).Value 'our number to text
   bodyText = ws.Range("B" & i).Value 'the text we wish to send
   
    'Use Microsoft's XML Library to make a web request.
    Set Request = CreateObject("MSXML2.ServerXMLHTTP.6.0")
    
    'Concatenate the required data that Vonage's REST Endpoint is expecting.
    Url = "https://rest.nexmo.com/sms/json?from=18335787204" & "&to=" & toNumber & "&text=" & bodyText & "&api_key=" & ApiKey & "&api_secret=" & ApiSecret
    
    'Open POST Request
    Request.Open "POST", Url, False
    
    'Set the Request Header
    Request.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    
    'Send Request
    Request.send Url
Next i

'OPTIONAL: You can get the response text after a message is sent by calling MsgBox Request.responseText
End Sub

Zum Schluss müssen wir noch einen Schaltfläche hinzufügen, um dieses Ereignis auszulösen. Wählen Sie Einfügen aus dem Menü Entwickler, Klicken Sie auf Schaltflächeund platzieren Sie sie in I3.

Select VBA ButtonExcelButton.png

Sobald Sie die Maus loslassen, werden Sie aufgefordert Makro zuweisen auf diese Taste. Wählen Sie die SendSMS Makro, das wir gerade eingefügt haben, wie unten gezeigt, und drücken Sie OK.

Assign Macro to WorksheetAssignMacro.png

Jetzt ist es an der Zeit, es zu testen! Stellen Sie sicher, dass Sie eine funktionierende, gültige Telefonnummer für Ihren Standort in A1 & A2 und Text in B1 & B2 haben, und drücken Sie die SendenSMS Taste.

Excel with sample dataExcelStart.png

Wenn alles gut gelaufen ist, sollten Sie eine SMS mit den in der Tabelle angegebenen Informationen erhalten haben.

Nachbereitung

VBA ist sehr effektiv und effizient, wenn es um Lösungen für Microsoft Office-Produkte geht, wie wir heute gesehen haben. Als ich für diesen Blogbeitrag recherchierte, erfuhr ich, dass es bereits seit fast dreißig Jahren verwendet wird. Das macht mich zuversichtlich, dass es sich um eine ausgereifte Plattform handelt; wahrscheinlich sind andere bereits auf dieselben Probleme gestoßen, die ich vielleicht habe.

Wenn Sie dies in Google Sheets tun möchten, sollten Sie hier nachsehen. Google Sheets und Microsoft Excel haben viele Gemeinsamkeiten, und Sie werden die gleiche großartige Vonage SMS API verwenden, die hier besprochen wird.

Wie immer gilt: Wenn Sie Fragen oder Feedback haben, melden Sie sich bei uns auf dem Vonage Entwickler-Slack. Nochmals vielen Dank für die Lektüre, und wir sehen uns beim nächsten Mal!

Teilen Sie:

https://a.storyblok.com/f/270183/400x400/7cdff37c0e/michael-crump.png
Michael CrumpManager, Entwicklererfahrungen

Michael Crump arbeitet bei Vonage im Developer Experiences Team und ist Programmierer, YouTuber und häufiger Sprecher zu verschiedenen Themen der .NET- und Cloud-/Kommunikationsentwicklung. Seine Leidenschaft ist es, Entwicklern die Vorteile der jeweiligen Technologien auf einfache Art und Weise näher zu bringen.