Excel VBA 逆引き集 | Teams/Slack BOT連携

Excel VBA
スポンサーリンク

外部連携 × Teams/Slack BOT連携

Excel VBAから TeamsやSlackのBOTに通知を送る ことで、Excelを「業務連絡のフロント」として活用できます。
Webhookを使ったシンプルな通知だけでなく、BOT連携を利用すれば「Excelからの処理結果をチャットに投稿」「エラーを自動通知」「日次報告をBOT経由で送信」などが可能です。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。


基本の考え方

  • BOT連携の仕組み
    1. TeamsやSlackで「Incoming Webhook」やBOT用のWebhook URLを設定
    2. VBAからHTTPリクエストを送信
    3. 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に自動通知する仕組み を簡単に作成できます。

タイトルとURLをコピーしました