Excel VBA 逆引き集 | Teams通知

Excel VBA
スポンサーリンク

外部連携 × Teams通知

Excel VBAから Microsoft Teamsに通知を送る ことで、Excelを「業務連絡のフロント」として活用できます。
例えば「処理完了をTeamsに通知」「エラー発生をTeamsに知らせる」「日次報告をTeamsに投稿」などが可能です。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。


基本の考え方

  • Teams通知の仕組み
    1. Teamsの「Incoming Webhook」を設定して通知用URLを取得
    2. VBAからHTTPリクエストを送信
    3. 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 を使う。
    • 複数行の通知が可能。

例題で練習

'例1:シンプルな通知をTeamsに送信
'例2:Excelのセル値を通知に組み込む
'例3:エラー発生時にTeamsへ通知
'例4:複数行メッセージを送信
VB

初心者向けポイント

  • Teams通知はWebhook URLが必須 → 事前にTeamsで設定して取得。
  • JSON形式でメッセージを送信"text" に通知内容を記載。
  • Excelの値やエラー内容を組み込める → 実務で便利。
  • Excelを「Teams通知のフロント」として活用できる → 報告や監視を自動化。

👉 この「外部連携 × Teams通知テンプレ」を覚えておけば、Excel VBAで 処理結果やエラーをTeamsに自動通知する仕組み を簡単に作成できます。

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