Edited at

VBAからSlackやRocket.Chatにメッセージ投稿する

More than 1 year has passed since last update.

ACCESSやEXCELで作られた既存の社内システムからアラートを投げたくなる時はありませんか?

これはVBAからIncoming Webhooks経由で、SlackやRocket.Chatにメッセージを投稿する方法です。

まずはSlackのWebhook URLを発行

参考: Slack APIを使用してメッセージを送信する

http://qiita.com/rubytomato@github/items/6558bfdb37d982891c09#incoming-webhooks

"Integration serviceに登録" の手順を参考に、SlackのWebhook URLを発行します。

Slackへの投稿


VBA

TargetURL = "https://hooks.slack.com/services/xxxxxxxx/xxxxxxxx/xxxxxxxxxxxxxxxxxxxxx"

Set HTTPReq = CreateObject("WinHttp.WinHttpRequest.5.1")
HTTPReq.Open "POST", TargetURL, False
HTTPReq.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
HTTPReq.send ("payload={""text"":""ほげほげ\nほげほげ""}")

実行すると下記のようにSlackに投稿できました。

slack.gif

Rocket.Chatへの投稿

上記コードのTargetURLを、Rocket.Chatのwebhookに変えてやればOKです。


VBA

TargetURL = "http://localhost:3000/hooks/xxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"


Rocket.Chatはいいぞ

ローカルでACCESS製のアプリケーションがガンガン動いているような職場では、同じくローカルで外部に見せずに運用できるRocket.Chatは相性が良いんじゃないでしょうか。

Rocket.Chat

https://rocket.chat/