こんにちは、なかぜんです。
業務アプリの通知、自動で送れたら便利ですよね。
「出荷処理が完了したら、Teamsに通知したい」
「Accessで集計したデータの結果を、グループチャットに送りたい」
そんなお悩み、Access+VBA+Webhookで解決できます!
この記事では、AccessからMicrosoft Teamsのチャットに自動で通知を送る方法を、コード付きでわかりやすく解説します。
Teamsと連携するための準備
Webhook URLを取得しよう
Teamsに通知を送るには、「受信Webhook」という仕組みを使います。手順は以下の通りです。
- Teamsを開き、通知を送りたいチームの「チャネル」を選択
- チャネル名の右にある「…」→「コネクタ」
- 「受信 Webhook」を探して「追加」
- 名前(例:Access通知)を入力して「作成」
- 表示された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でカード形式メッセージを送る方法」もご紹介予定です。お楽しみに!
それでは、なかぜんでした😊
楽天ブックス
¥2,915 (2025/06/08 19:45時点 | 楽天市場調べ)
