外部連携 × Teams通知
Excel VBAから Microsoft Teamsに通知を送る ことで、Excelを「業務連絡のフロント」として活用できます。
例えば「処理完了をTeamsに通知」「エラー発生をTeamsに知らせる」「日次報告をTeamsに投稿」などが可能です。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。
基本の考え方
- Teams通知の仕組み
- Teamsの「Incoming Webhook」を設定して通知用URLを取得
- VBAからHTTPリクエストを送信
- JSON形式でメッセージを渡すとTeamsに投稿される
- 用途例:
- Excel処理完了をTeamsに通知
- エラー発生をTeamsに知らせる
- Excelの集計結果をTeamsに共有
テンプレ1:Teamsにシンプルな通知を送信
Sub SendTeamsNotification()
Dim http As Object
Dim webhookUrl As String
Dim jsonBody As String
' TeamsのWebhook URL(事前に設定して取得)
webhookUrl = "https://outlook.office.com/webhook/xxxxxxx"
' 通知メッセージ(JSON形式)
jsonBody = "{""text"":""Excel VBAからTeamsに通知しました!""}"
' HTTPリクエスト送信
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "POST", webhookUrl, False
http.setRequestHeader "Content-Type", "application/json"
http.Send jsonBody
MsgBox "Teamsに通知を送信しました!"
End Sub
VB- ポイント:
- Webhook URLはTeamsで「コネクタ → Incoming Webhook」を設定して取得。
- JSONの
"text"に通知内容を記載。
テンプレ2:Excelのセル値を通知に組み込む
Sub SendTeamsNotification_FromSheet()
Dim http As Object
Dim webhookUrl As String
Dim jsonBody As String
Dim ws As Worksheet: Set ws = Worksheets("Report")
webhookUrl = "https://outlook.office.com/webhook/xxxxxxx"
' シートの値を通知に組み込む
jsonBody = "{""text"":""本日の売上は " & ws.Range("B2").Value & " 円です。""}"
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "POST", webhookUrl, False
http.setRequestHeader "Content-Type", "application/json"
http.Send jsonBody
MsgBox "シートの値をTeamsに通知しました!"
End Sub
VB- ポイント:
- Excelのセル値を文字列連結でJSONに組み込む。
- 日次報告や集計結果を自動通知できる。
テンプレ3:エラー発生時にTeamsへ通知
Sub SendTeamsNotification_OnError()
On Error GoTo ErrHandler
' 例:存在しないシートを参照
Worksheets("NoSheet").Activate
Exit Sub
ErrHandler:
Dim http As Object
Dim webhookUrl As String
Dim jsonBody As String
webhookUrl = "https://outlook.office.com/webhook/xxxxxxx"
jsonBody = "{""text"":""Excel VBAでエラーが発生しました: " & Err.Description & """}"
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "POST", webhookUrl, False
http.setRequestHeader "Content-Type", "application/json"
http.Send jsonBody
MsgBox "エラー通知をTeamsに送信しました!"
End Sub
VB- ポイント:
On Error GoToでエラー処理をキャッチ。- エラー内容をTeamsに通知。
テンプレ4:複数行のメッセージを送信(改行対応)
Sub SendTeamsNotification_MultiLine()
Dim http As Object
Dim webhookUrl As String
Dim jsonBody As String
webhookUrl = "https://outlook.office.com/webhook/xxxxxxx"
' 改行は \n を使う
jsonBody = "{""text"":""処理が完了しました。\n売上データを確認してください。""}"
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "POST", webhookUrl, False
http.setRequestHeader "Content-Type", "application/json"
http.Send jsonBody
MsgBox "複数行メッセージをTeamsに送信しました!"
End Sub
VB- ポイント:
- JSON内で改行は
\nを使う。 - 複数行の通知が可能。
- JSON内で改行は
例題で練習
'例1:シンプルな通知をTeamsに送信
'例2:Excelのセル値を通知に組み込む
'例3:エラー発生時にTeamsへ通知
'例4:複数行メッセージを送信
VB初心者向けポイント
- Teams通知はWebhook URLが必須 → 事前にTeamsで設定して取得。
- JSON形式でメッセージを送信 →
"text"に通知内容を記載。 - Excelの値やエラー内容を組み込める → 実務で便利。
- Excelを「Teams通知のフロント」として活用できる → 報告や監視を自動化。
👉 この「外部連携 × Teams通知テンプレ」を覚えておけば、Excel VBAで 処理結果やエラーをTeamsに自動通知する仕組み を簡単に作成できます。
