
シェア:
マイケル・クランプはVonageのデベロッパーエクスペリエンスチームに所属し、コーダー、YouTuber、そして様々な.NETやクラウド/通信開発トピックについて頻繁に講演を行っています。彼は、開発者がそれぞれの利点を分かりやすく理解できるようにすることに情熱を注いでいます。
ExcelスプレッドシートからSMSメッセージを送信する
はじめに
Microsoftは、Microsoft ExcelのようなOfficeアプリケーションに新しい機能を追加し、ビジネスニーズに特化した方法でユーザーを促したり対話したりする方法を提供しています。Visual Basic for Applications (VBA)を使用することで、これらのタスクを実行し、さらに多くのことを達成することができます。VBAは、Microsoft OutlookからMicrosoft Excelのスプレッドシートに連絡先を取り込むなど、シンプルで強力なプログラミング言語です。
このブログでは、Microsoft ExcelのVBAを使ってSMSメッセージを送信します。携帯電話番号と送信するテキストを入力し、ボタンを押すだけで送信できます!このコードを修正して、スケジュール管理など、ビジネスで必要な機能を追加することもできます。さあ、始めましょう!
Vonageデベロッパアカウントの作成
を作成する必要があります。 Vonageデベロッパーアカウントを作成する必要があります。アカウントを作成すると、APIキーとAPIシークレットが Vonage API ダッシュボードの下にあります。 API設定.これらの値を取得したら、安全な場所に保管してください。
Vonage SMS API ドキュメンテーションを参照してください。
コーディングを始める前に、まず Vonage SMS API ドキュメントを参照し、API が呼び出されたときにどのようなフィールドを提供することを期待しているかを調べる必要がある。ドキュメントを見ると、いくつかのプログラミングSDKがサポートされていることがわかる。ExcelはVBAしか使えないので、Vonageが提供するREST Endpointを呼び出す必要があります。
RESTのコード・スニペットを調べてみると、以下のような必須フィールドがいくつかあることがわかる:
A
from番号A
to番号その
textを送信します。アン
api_keyとapi_secretこれは上のステップで得たはずである。
以下のcURLの例は、呼び出されたときにどのように見えるかを示している。
有効な情報と認証情報を使ってこのコードを実行すると、ターミナルに次のような出力が表示される:
{
"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"
}なお statusはステータス・コード0を返し、これは送信に成功したことを意味する。電話番号に送信した場合は、テキスト・メッセージが表示されているはずだ。次に、マイクロソフト・エクセルをセットアップしよう。
エクセル・スプレッドシートの設定
前述したように、Microsoft ExcelはVBA(Visual Basic for Applications)を使ってプログラムでデータを操作することができる。まず、テキスト・メッセージを送りたい Numbers と送りたいメッセージを含む数行のデータからなるスプレッドシートを作 成してみよう。
まず、テキスト・メッセージを送信したい番号と、送信したいメッセージを含む数行のデータを持つスプレッドシートを作成しよう。
エクセル・シートを次のように構成する:
A1とA2には携帯電話の番号が入ります。
B1とB2には、送信するテキストが含まれます。
H1には "API Key "テキストが含まれます。
H2には "API Secret "テキストが含まれます。
I1はVonage API DashboardのAPI Keyです。
I2 は Vonage API Dashboard の API Secret です。
I3は「SMSを送信する」というボタンになる(ボタンの作成については後ほど説明する)。
ワークシートに次のような名前を付けます。
Numbers.
これで、以下のような画面になるはずだ。
ExcelStart.png
Microsoft Excelの開発者モードの有効化と設定
を表示するオプションを追加する必要がある。 開発者メニューを表示するオプションを追加する必要があります。これは ファイル-> オプション-> リボンのカスタマイズにチェックを入れ 開発者オプションにチェックを入れます。
ExcelDevMode.png
について 開発者メニューオプションがメニューバーに表示されているはずです。それを選択して ビジュアル・ベーシックオプションを選択します。
VisualBasic.png
Microsoft Visual Basic for Applicationsが実行されている新しいウィンドウが表示されます。選択 挿入を選択し モジュールを選択し、Excelシートと連動するVisual Basicコードを入力します。
NewModule.png
を追加する必要があります。 リファレンスを追加する必要があります。 Microsoft XML 6.0ライブラリへの参照を追加する必要があります。ツール ツール-> リファレンスにアクセスし マイクロソフトXML、v6.0をチェックしてください:
AddReference.png
Vonage SMS APIを呼び出すVBAコードの追加
以下のコード・ブロックをコピーしてアプリケーションに貼り付け、各セクションが何をしているかを説明するために残したコメントに注目してください。
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
最後に ボタンを追加する必要があります。選択 挿入を選択する。 開発者メニューをクリックする。 ボタンをクリックし、I3 に配置する。
ExcelButton.png
マウスを離すと、次のような画面が表示されます。 マクロの割り当てを ボタン.を選択します。 送信SMSマクロを選択します。 OK.
AssignMacro.png
いよいよテストです!A1とA2に現在地の有効な電話番号、B1とB2にテキストを入力して 送信SMSボタンを押してください。
ExcelStart.png
すべてがうまくいっていれば、スプレッドシートに記載された情報が記載されたテキストが送られてくるはずです。
まとめ
今日見たように、VBAはマイクロソフト・オフィス関連製品のソリューションに関して非常に効果的かつ効率的である。このブログ記事のために調べているうちに、すでに30年近く使われていることを知った。このことは、VBAが成熟したプラットフォームであることを確信させてくれる。
Google Sheetsでこれを行う場合は、以下を参照してください。 ここを見る.Google SheetsとMicrosoft Excelには多くの共通点があり、ここで説明したのと同じ素晴らしいVonage SMS APIを使用します。
ご質問やフィードバックがある場合は、いつものように Vonage Developer Slack にご参加ください。.次回もお楽しみに!