非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Outlook/VBAで「いいね!」ボタンを作ってみた

      2021/06/08

以前からメールで返信するまでもなく軽く相槌を打つ程度の表現ができればなって思っていました。ちょうどSNSの「いいね!」ボタンみたいなやつ。

特に会社のメールで「ありがとうございました。」の返信メール打つ人いますが、あれっていちいちメール打つの面倒くさいんですよね。僕は最近は社内の人だったら単純な「ありがとうございました。」メールは打たないことにしているんですが、なしのつぶてみたいになっちゃっていないかなって時折り思ってます。

なので、いっそのことOutlookに「いいね!」ボタン作ることにしました

完成形はこれです。アイコンは用意されているものしか選択できないので、それらしいアイコンを選びました。※ソースコードはこの記事の最後に載せています。

 

送られてきたメールを開いてこのボタンを押すと、勝手に「いいね!」と返信してくれます。なんてことはない、単なる自動返信です。

 

これが相手が受け取った。「いいね!」メールの例。ちなみに受け手はGmailです。

 

受け手がOutlookの場合は若干見た目が変わりますがこんな感じ。

 

ソースコード

こちらがソースコードです。

Sub pressLike()
  Dim mItem As MailItem

  If TypeName(Application.ActiveWindow) = "Inspector" Then
    Set obj = ActiveInspector.CurrentItem
  Else
    Set obj = ActiveExplorer.Selection(1)
  End If

  Set mItem = obj.Reply
  sname = getName(mItem.Body)
  mItem.HTMLBody = "<div style=""text-align:center;border:1px solid #000099;padding:10px;background:#eef;"">" & _
                    sname & "さんがあなたのメールを「いいね」と言っています。</div>" & vbCrLf & mItem.HTMLBody

  'mItem.Display
  mItem.Send 'メール送信
End Sub

Function getName(t)
  If InStr(t, "To:") > 0 Then
    result1 = Split(t, "To:")
    result2 = Split(result1(1), vbCrLf)

    getName = result2(0)
  Else
    getName = "このメール送信者"
  End If
End Function
 

 

リボンにボタンを設置

気軽に「いいね」できるように、リボンにこのマクロを実行するボタンを設置しました。冒頭で紹介したやつですね。これを押せばバックグラウンドで「いいね!」メールが送信されます。

 

リボンにマクロ実行ボタンを設置する方法は以下を参照ください。

 

送る前にメールの内容を確認したい場合

あまりにもサクッと返信してしまうので、送る前に一度内容を確認したい人は、15行目のコメントを外し、代わりに16行目をコメントアウトするとOKです。


mItem.Display  'こちらを有効に。
'mItem.Send 'こちらをコメントアウト

 

送信されず、メールが作成された状態で止まります。確認後、自分で送信ボタンをおす必要あります。

 

まあ、今回のような「いいね!」メールじゃなくても、会社では「ご連絡ありがとうございました。」しか書かないメールがよく飛び交います。このプログラムをうまく流用すれば、テンプレ返信メールが作れますね。

スポンサーリンク

 - Outlook, VBA