こんにちは、Accessブロガーのなかぜんです。
「Accessのデータ、もっとチームで共有したい…」「作業完了をTeamsに通知できたら便利なのに…」そんな風に思ったことはありませんか?
実は、AccessとMicrosoft Teamsをうまく連携させれば、作業効率がグンと上がります!
今回は、AccessからTeamsへメッセージ通知を送る方法を中心に、VBAの実例コードや注意点を交えて、やさしく解説していきます。
AccessとTeamsは連携できる?
Microsoft Teamsは、社内のコミュニケーションを支える強力なツール。そして、Accessは業務データの管理に優れたデータベースソフト。
この2つを連携させれば、たとえば以下のようなことが可能になります:
- Accessの登録・更新データをTeamsに自動通知
- 定期的なレポートをTeamsのチャネルに投稿
- エラーや進捗情報をリアルタイムで共有
VBAとWebhook(外部通知URL)を使うことで、意外と簡単に連携ができます。
Teamsと連携するための準備
① Teams側でWebhook(着信Webhook)を作成
- Teamsの対象チャネルに移動
- 「…」メニュー → 「コネクタ」→「着信 Webhook」を選択
- Webhookに名前をつけて「作成」→ 表示されたURLをコピー
② Access VBAからWebhookにPOST送信
以下が、AccessからTeamsにメッセージを送るVBAの基本コードです。
' 送信用VBAプロシージャ
Sub PostToTeams(msg As String)
Dim http As Object
Dim url As String
Dim json As String
url = "https://outlook.office.com/webhook/xxxxxxxxxx" 'Webhook URLに置き換えてください
json = "{""text"":""" & msg & """}"
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "POST", url, False
http.setRequestHeader "Content-Type", "application/json"
http.send json
MsgBox "Teamsに送信しました!", vbInformation
End Sub
解説:
msg
に送信したい文字列を指定しますurl
はTeamsで作成したWebhookのURLです- JSON形式でメッセージ本文を整形して送信します
注意点とよくあるミス
- Webhook URLの誤り:必ずTeamsで発行した正しいURLを使用しましょう
- 日本語が文字化けする:メッセージ内に全角文字を含む場合は、事前にUTF-8対応などの調整が必要になるケースもあります
- セキュリティソフトによるブロック:HTTP送信が制限されている環境では動作しない場合があります
応用:レポート内容を自動送信する
少し応用すれば、Accessのクエリ結果を自動でTeamsに送ることも可能です。
クエリ結果をテキスト化して送信
Sub NotifyQueryResult()
Dim rs As DAO.Recordset
Dim msg As String
Set rs = CurrentDb.OpenRecordset("Q_進捗一覧")
msg = "【最新の進捗状況】" & vbCrLf
Do Until rs.EOF
msg = msg & rs!顧客名 & ": " & rs!進捗状況 & vbCrLf
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
PostToTeams msg
End Sub
ポイント:このようにすれば、毎朝定時に自動実行してチームに進捗を共有する…といった仕組みも構築できます。
まとめ:Access×Teamsで業務がもっと快適に!
今回は、AccessとTeamsを連携させる方法について、基本から応用までご紹介しました。
- TeamsのWebhookを使えば、簡単にAccessから通知ができる
- VBAでメッセージ送信も自由自在
- 応用すればクエリ結果やエラー通知の共有も可能
Accessの情報をリアルタイムにチームで共有できれば、ミスの防止や対応の迅速化にもつながります。
最後まで読んでくださって、ありがとうございました!
楽天ブックス
¥2,178 (2025/05/04 18:54時点 | 楽天市場調べ)
