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

ExcelスプレッドシートからSMSメッセージを送信する

最終更新日 February 2, 2023

所要時間:1 分

はじめに

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_keyapi_secretこれは上のステップで得たはずである。

以下のcURLの例は、呼び出されたときにどのように見えるかを示している。

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"

有効な情報と認証情報を使ってこのコードを実行すると、ターミナルに次のような出力が表示される:

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

これで、以下のような画面になるはずだ。

Excel with sample dataExcelStart.png

Microsoft Excelの開発者モードの有効化と設定

を表示するオプションを追加する必要がある。 開発者メニューを表示するオプションを追加する必要があります。これは ファイル-> オプション-> リボンのカスタマイズにチェックを入れ 開発者オプションにチェックを入れます。

Excel Dev ModeExcelDevMode.png

について 開発者メニューオプションがメニューバーに表示されているはずです。それを選択して ビジュアル・ベーシックオプションを選択します。

Visual Basic OptionVisualBasic.png

Microsoft Visual Basic for Applicationsが実行されている新しいウィンドウが表示されます。選択 挿入を選択し モジュールを選択し、Excelシートと連動するVisual Basicコードを入力します。

Excel New ModuleNewModule.png

を追加する必要があります。 リファレンスを追加する必要があります。 Microsoft XML 6.0ライブラリへの参照を追加する必要があります。ツール ツール-> リファレンスにアクセスし マイクロソフトXML、v6.0をチェックしてください:

Add Reference DialogAddReference.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 に配置する。

Select VBA ButtonExcelButton.png

マウスを離すと、次のような画面が表示されます。 マクロの割り当てボタン.を選択します。 送信SMSマクロを選択します。 OK.

Assign Macro to WorksheetAssignMacro.png

いよいよテストです!A1とA2に現在地の有効な電話番号、B1とB2にテキストを入力して 送信SMSボタンを押してください。

Excel with sample dataExcelStart.png

すべてがうまくいっていれば、スプレッドシートに記載された情報が記載されたテキストが送られてくるはずです。

まとめ

今日見たように、VBAはマイクロソフト・オフィス関連製品のソリューションに関して非常に効果的かつ効率的である。このブログ記事のために調べているうちに、すでに30年近く使われていることを知った。このことは、VBAが成熟したプラットフォームであることを確信させてくれる。

Google Sheetsでこれを行う場合は、以下を参照してください。 ここを見る.Google SheetsとMicrosoft Excelには多くの共通点があり、ここで説明したのと同じ素晴らしいVonage SMS APIを使用します。

ご質問やフィードバックがある場合は、いつものように Vonage Developer Slack にご参加ください。.次回もお楽しみに!

シェア:

https://a.storyblok.com/f/270183/400x400/7cdff37c0e/michael-crump.png
Michael Crumpデベロッパー・エクスペリエンス・マネージャー

マイケル・クランプはVonageのデベロッパーエクスペリエンスチームに所属し、コーダー、YouTuber、そして様々な.NETやクラウド/通信開発トピックについて頻繁に講演を行っています。彼は、開発者がそれぞれの利点を分かりやすく理解できるようにすることに情熱を注いでいます。