外部連携 × Teams/Slack BOT連携
Excel VBAから TeamsやSlackのBOTに通知を送る ことで、Excelを「業務連絡のフロント」として活用できます。
Webhookを使ったシンプルな通知だけでなく、BOT連携を利用すれば「Excelからの処理結果をチャットに投稿」「エラーを自動通知」「日次報告をBOT経由で送信」などが可能です。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。
基本の考え方
- BOT連携の仕組み
- TeamsやSlackで「Incoming Webhook」やBOT用のWebhook URLを設定
- VBAからHTTPリクエストを送信
- JSON形式でメッセージを渡すとBOTがチャネルに投稿
- 用途例:
- Excel処理完了をBOTに通知
- エラー発生をBOTに知らせる
- Excelの集計結果をBOT経由で共有
テンプレ1:Teams BOTに通知を送信
Sub SendTeamsBOT()
Dim http As Object
Dim webhookUrl As String
Dim jsonBody As String
' Teams BOT用Webhook URL
webhookUrl = "https://outlook.office.com/webhook/xxxxxxx"
' 通知メッセージ(JSON形式)
jsonBody = "{""text"":""Excel VBAからTeams BOTに通知しました!""}"
' HTTPリクエスト送信
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "POST", webhookUrl, False
http.setRequestHeader "Content-Type", "application/json"
http.Send jsonBody
MsgBox "Teams BOTに通知を送信しました!"
End Sub
VB- ポイント:
- Webhook URLはTeamsで「Incoming Webhook」を設定して取得。
- BOTがチャネルに投稿してくれる。
テンプレ2:Slack BOTに通知を送信
Sub SendSlackBOT()
Dim http As Object
Dim webhookUrl As String
Dim jsonBody As String
' Slack BOT用Webhook URL
webhookUrl = "https://hooks.slack.com/services/xxxxxxx"
' 通知メッセージ(JSON形式)
jsonBody = "{""text"":""Excel VBAからSlack BOTに通知しました!""}"
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "POST", webhookUrl, False
http.setRequestHeader "Content-Type", "application/json"
http.Send jsonBody
MsgBox "Slack BOTに通知を送信しました!"
End Sub
VB- ポイント:
- Slackで「Incoming Webhook」を設定してURLを取得。
- JSONの
"text"に通知内容を記載。
テンプレ3:Excelのセル値をBOT通知に組み込む
Sub SendBOT_FromSheet()
Dim http As Object
Dim webhookUrl As String
Dim jsonBody As String
Dim ws As Worksheet: Set ws = Worksheets("Report")
' Slack BOT用Webhook URL(Teamsでも同様)
webhookUrl = "https://hooks.slack.com/services/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 "シートの値をBOTに通知しました!"
End Sub
VB- ポイント:
- Excelのセル値を文字列連結でJSONに組み込む。
- 日次報告や集計結果を自動通知できる。
テンプレ4:エラー発生時にBOTへ通知
Sub SendBOT_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://hooks.slack.com/services/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 "エラー通知をBOTに送信しました!"
End Sub
VB- ポイント:
On Error GoToでエラー処理をキャッチ。- エラー内容をBOTに通知。
例題で練習
'例1:Teams BOTにシンプルな通知を送信
'例2:Slack BOTにシンプルな通知を送信
'例3:Excelのセル値をBOT通知に組み込む
'例4:エラー発生時にBOTへ通知
VB初心者向けポイント
- Webhook URLが必須 → Teams/Slackで事前に設定して取得。
- JSON形式でメッセージを送信 →
"text"に通知内容を記載。 - Excelの値やエラー内容を組み込める → 実務で便利。
- Excelを「BOT通知のフロント」として活用できる → 報告や監視を自動化。
👉 この「外部連携 × Teams/Slack BOT連携テンプレ」を覚えておけば、Excel VBAで 処理結果やエラーをTeams/Slack BOTに自動通知する仕組み を簡単に作成できます。

