Outlookの自動仕分けからマクロを呼び出す

最近アラートメールをたくさん受信するので快適に処理するためOutlookマクロというかVBAでゴリゴリいじろと思ったら振り分けルールと通知からどうやっても処理の選択にスクリプトが出てこない。
調べてみたら2017 年 5 月以降にリリースされた Outlook 2016 の修正プログラム、または 6 月以降にリリースされた Outlook 2013 の修正プログラムによってOutlookの自動仕分けルール内からスクリプトを呼び出すことができなくなっていたので対処。

以下レジストリに値をセット
Outlook2016 : HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Security\
Outlook2013 : HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Security\

  • 名前 : EnableUnsafeClientMailRules
  • 種類 : REG_DWORD
  • データ : 1

参考
https://support.microsoft.com/ja-jp/help/3191893/how-to-control-the-rule-actions-to-start-an-application-or-run-a-macro


また、仕分けで呼び出せるマクロは 引数は MailItem または MeetingItem 型のsubであることが必要なのできをつけましょう。
こんな感じ

Sub mailRule(mail As Outlook.MailItem)
   MsgBox mail.Subject
End Sub