スポンサーリンク

AccessからTeamsチャットに自動通知する方法(VBA+Webhook編)

スポンサーリンク
Access
スポンサーリンク

こんにちは、なかぜんです。
業務アプリの通知、自動で送れたら便利ですよね。

「出荷処理が完了したら、Teamsに通知したい」
「Accessで集計したデータの結果を、グループチャットに送りたい」

そんなお悩み、Access+VBA+Webhookで解決できます!

この記事では、AccessからMicrosoft Teamsのチャットに自動で通知を送る方法を、コード付きでわかりやすく解説します。


スポンサーリンク

Teamsと連携するための準備

Webhook URLを取得しよう

Teamsに通知を送るには、「受信Webhook」という仕組みを使います。手順は以下の通りです。

  1. Teamsを開き、通知を送りたいチームの「チャネル」を選択
  2. チャネル名の右にある「…」→「コネクタ」
  3. 「受信 Webhook」を探して「追加」
  4. 名前(例:Access通知)を入力して「作成」
  5. 表示されたURLをコピー(※このURLがWebhookの宛先になります)

これでTeamsの準備は完了です。


AccessでTeamsに通知を送るVBAコード

実際のコード例

' TeamsWebhookNotifyモジュール

Public Sub SendTeamsMessage(ByVal msg As String)
    Dim http As Object
    Dim json As String
    Dim url As String

    ' Teamsで作成したWebhookのURLをここに貼り付け
    url = "https://outlook.office.com/webhook/●●●(あなたのURL)"

    json = "{""text"": """ & msg & """}"

    Set http = CreateObject("MSXML2.XMLHTTP")
    http.Open "POST", url, False
    http.setRequestHeader "Content-Type", "application/json"
    http.Send json

    If http.Status = 200 Then
        MsgBox "Teamsに通知を送信しました。", vbInformation
    Else
        MsgBox "通知に失敗しました。Status: " & http.Status, vbExclamation
    End If

    Set http = Nothing
End Sub

使い方

フォームのボタンや処理の最後に、以下のように呼び出せばOKです。

Call SendTeamsMessage("処理が完了しました。")

これで、Teamsチャネルに以下のようなメッセージが届きます👇

処理が完了しました。


注意点とよくあるミス

  • Webhook URLを間違える:Teamsで発行したURLを正しく貼り付けましょう。
  • ファイアウォール制限:企業のネットワークではPOST通信がブロックされていることもあります。
  • 文字コード:日本語も問題なく送れますが、エスケープ文字に注意しましょう(例:改行は \n を使う)

応用ポイント:もっと便利に使おう!

通知内容を動的に変える

たとえば、エラー時だけ通知する処理にしておくと便利です。

If HasError Then
    Call SendTeamsMessage("エラーが発生しました。ID:" & RecordID)
End If

メッセージに日時を含める

Dim msg As String
msg = "処理完了:" & Format(Now, "yyyy/mm/dd hh:nn:ss")
Call SendTeamsMessage(msg)

こうすれば、いつ実行されたかも分かりやすくなります。

Accessのバッチ処理に組み込む

日次集計や自動エクスポート処理のあとに通知を送ることで、処理の完了や異常検知をリアルタイムで把握できます。


まとめ:業務とAccessをもっとスマートに

今回は、AccessからTeamsチャットへ通知を送る方法をご紹介しました。

  • Webhookを使えば、Teamsとの連携はとてもシンプル
  • VBAの基本的なHTTP通信で簡単に通知できる
  • 通知タイミングやメッセージ内容は柔軟にカスタマイズ可能

「通知を自動化したい」「ミスを減らしたい」と思っていた方には、ぴったりのテクニックです。

次のステップ

次回は、「AccessのエラーログをTeamsに飛ばす応用編」や「JSONでカード形式メッセージを送る方法」もご紹介予定です。お楽しみに!

それでは、なかぜんでした😊