VBAからLINEにメッセージを送る

LINE Notify APIにVBAからリクエストする方法。

LINE Notifyというサービスがあります。API経由でLINEにメッセージが送れます。これをVBAから利用できればいろいろ面白いことができそうですよね。

たとえば、Excelファイルのイニシャライズイベントに仕込んでおけば、ファイルが開かれたらLINEにメッセージが届きます。私は休日にも仕事関連のメッセージが来るなんて冗談じゃない派ですので絶対にやりませんが、とにかく発想次第で画期的な何かが生まれそうな予感。

とはいえ、実装までの手間がかかりすぎたらメールの方が手っ取り早いわけで、試しにやってみたところ、ものすごく簡単にできちゃったのでご紹介します。採用です。

LINE Notifyを登録する

LINE Notifyを利用するにはLINEアカウントからの登録とトークンの発行が必要です。トークンとはID兼パスワードみたいなものです。誰でも彼でもAPIからメッセージを送れたら迷惑この上ないので、リクエストに含まれるトークンが正しい場合のみAPIが処理を受け付けます。

登録とトークン発行は次の手順で行います。

1.LINE NotifyのWEBサイトhttps://notify-bot.line.me/ja/へアクセスします。

2.右上にあるログインをクリックします。

liness4.png

3.ID、PASSを入力する画面になるのでLINEのアカウントでログインします。

4.ログインが成功すると、右上がアカウントの登録名に変わっています(私はバリバリ本名なのでスクショでは消しています)。クリックするとメニューが展開されるのでマイページをクリックします。

liness5.png

5.アクセストークンの発行(開発者向け)のトークンを発行するボタンをクリックします。

liness6.png

6.ポップアップしたウィンドウでトークン名を適当に決めて入力します。トークン名はメッセージの頭に自動的に付きます。

7.メッセージをどこへ投稿するか決めます。試しにやるなら自分へ1:1にしておくと良いでしょう。

liness7.png

8.必要事項を決めると発行するボタンがクリックできるようになるので、クリックします。

9.トークンが発行されます。コピーボタンをクリックするとクリップボードへコピーされます。以降の処理でトークンを手打ちするのはハードなので素直にコピーしておいてください。注意書きにありますが、トークンを忘れると再確認はできずに一からやり直しになります。

liness8.png

10.登録が完了するとLINEに次のようなメッセージが来ます。

liness1.png

以上で準備完了です。

LINE Notify APIへリクエストする

トークンがゲットできたら、VBAでAPIリクエストを生成して送るだけです。公式リファレンスにエンドポイントのURL、必要なヘッダー、パラメータが書いてあるのでその通り組み立てます。

次のようなプロシージャになりました。

Sub lineNotify(message As String)
    Const TOKEN As String = "********************************************"
    
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")
    
    http.Open "POST", "https://notify-api.line.me/api/notify", False
    http.setRequestHeader "Authorization", "Bearer " & TOKEN
    http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    http.Send "message=" & message
End Sub

定数TOKENをあなたが発行したトークンに書き換えてください。他はさわらなくてOKです。

引数にメッセージ本文を渡してプロシージャを実行します。たとえば

liness2.png

すると即座にLINEにメッセージが届きます。本当に「即座」です。1秒かからないです。メールだったらこんなレスポンスは期待できないですね。

liness3.png

このように、おそろしく簡単にLINEへメッセージが送れます。

あとはプロシージャーのトリガーをどうするか、どのようにメッセージを作るか、写真も送れるようなので夢が広がりんぐですね。

ソースコードをコピペしてご利用ください。

2020年2月現在、APIコール1000回/hの制限がありますので、無闇やたらにリクエストしないよう注意しましょう。その他詳細は公式サイトからリファレンスをお読みください。

公式サイト

related pages
Excelマクロを指定した時刻に自動実行させる
定型作業は全自動でコンピューターにやらせましょう。

ある程度VBAが使えるようになるとこう思います。「もうこれボタン押すだけだし、オレがやる必要なくね?」マクロ実行命令すらもコンピューターに委ねたいですか?はい、可能です。これは我々、はたらきたくない会社員の理想を実現するために必須のテクニックになります。

Read More ...
Excelに最適な画面解像度はどれか
Full HDを表示できないモニターは窓から投げ捨てろ!

結論。WQHD(2560×1440px)以上の解像度でFull HD相当まで拡大表示。 私は4kモニターをデュアルで175%拡大表示にして使っています。最強です(自慢)。

Read More ...
複数行を条件にしたがいまとめる
重複しているデータを行ごと統合します。

データベースでいうところの主キーが重複して存在するテーブルライクなExcelシートのデータを、主キー制約に違反しない形へ条件にしたがいまとめて別シートへ書き出すという処理を作ります。

Read More ...
この記事の
作成日

2020-02-01

更新日

2020-07-30

ページ内検索
目次
WEB MASTER
さいた
神エクセル撲滅協会理事(自称)
さいたま市民 埼玉こそ地上の楽園