Image: 仕分けルールのアクションでスクリプト(マクロ)を使用可能にする [Outlook 2019]

※この記事で使用しているOutlookのバージョンは、Microsoft Office 2019のバージョン2006 (ビルド13001.20384)です。

私用メールは長らくOutlook 2010で管理していたんだけど、今年10月でOffice 2010共々サポート・セキュリティパッチの提供が終了するとのことで、新しいPCにプリインストールされているOutlook 2019へ移行しているところ。まず、初回起動時のアカウントの設定でYahooメール (POP)を追加する所からして少し手こずったが、これは何とか自力で解決。メールデータも*.pstファイルを新しいPCに移して取り込み完了。仕分けルールはメールデータに含まれていたようで、これは別途でインポートする必要はなかった。

Outlook 2010では特定の受信メールに「期限切れ日時」を設定する自作マクロ(→受信して指定時間経過したメールを自動削除)をアクションに指定していたのだけど、Outlook 2019に移行したところ、仕分けルールのリストにエラーが出ていた。

ルールを編集しようと下線部をクリックすると、「現在のモードで、この仕分けルールは使用できません。」という理解不能なメッセージが出るだけで、編集ができなくなっている。

オプションの「トラストセンター」にある「マクロの設定」は旧バージョンと同じように変えているので、マクロは有効になっているはずなのだが。

Image: トラストセンター

自力でどうにもなりそうにないのでネットで調べてみると、Outlook 2013以降かつ2017年にリリースされた更新プログラムを適用している場合、仕分けルールのアクションにあった「スクリプトを実行する」は既定では不可視・使用不可になったらしい。私が使用しているOutlook 2019にはこの更新は含まれていると考えて良いだろう。

この問題の解決方法は他所で既出のOutlook 2016の場合とほぼ同様。「ほぼ同様」と言うのは、Outlook 2019では状況が少し異なるからだ。

解決方法はトリッキーだがシンプルで、レジストリエディターを使ってHKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\SecurityキーにDWORD値でEnableUnsafeClientMailRulesを作成し、値を1に設定すればいい。

ところが、Outlook 2019の場合は初期状態だとHKEY_CURRENT_USER\Software\Microsoft\Officeまでのキーしか存在しない。

Image: レジストリエディター

この場合、自分でキーを作成すればいい。「Office」キーを選択したら右クリックして「新規」→「キー」を選び、「16.0」(これはOutlook 2016と2019の場合)と入力してOK。以下同じようにして「Outlook」「Security」キーまで作成してから、DWORD値「EnableUnsafeClientMailRules」(値 1)を作成する。

そうしてからOutlookを再起動し、先の仕分けルール一覧で下線部をクリックすると、VBAにサブルーチンを記述済みであれば「スクリプトの選択」から選べるようになっているので、実行したいサブルーチンの名称を選ぶ。

Image: Outlook 2019 仕分けルール スクリプトの選択

参考ページ


※コメント欄が表示されない場合はdisqusについてJavascriptが有効であることを確認して下さい.