Outlookの仕分けルールからスクリプトを実行しメール転送する方法

Outlookの仕分けルールからスクリプトを実行し、メール転送する方法

Outlookの仕分けルールで振り分けられたメールに内容を追記し転送したいときはないでしょうか。

そんな時に便利なのが仕訳ルールでスクリプトを起動し、OutlookVBAで処理する方法です。

けど、そんな中で悩むことは、

・Outlookの仕分けルールで振り分けられたメールに内容を追記し転送したいがやり方がわからない。
・仕訳ルールでスクリプトを実行するやり方がわからない。

ですよね。

今回はそんなお悩みを解決する
Outlookの仕分けルールからスクリプトを実行し、メール転送する方法について
まとめます!


Outlook の仕訳ルールからスクリプトを実行させる方法

Outlook の仕訳ルールからスクリプトを実行させるにはレジストリの設定変更が必要です。

これには理由があって、Microsoft側でセキュリティの観点から問題があると判断し、Outlook2010以降から標準ではスクリプトを実行するメニューを出さなくしたためです。

転送先を間違えればメール誤送信になるし、第三者からスクリプトを仕込まれ、情報漏洩につながるリスクがあるので、一旦メニューは非表示としておこうとした訳です。

この点を踏まえ、しっかり注意した上で、Outolook2016を例にスクリプトを実行するメニューを表示させてみましょう。

レジストリの設定を変更する

すべての Microsoft Office アプリケーションを終了します。

Windows の 10 の開始をするには、検索 ボックスで、 regeditを入力し、検索結果でregedit.exeを選択し、レジストリ エディターを起動します。

以下のレジストリサブキーを選択します。

Outlook2016の場合
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Security\

Outlook 2013の場合
HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Security\

編集 メニューで、新規作成 をポイントし、 DWORD(32ビット)値を選択します。
「EnableUnsafeClientMailRules」を入力し、Enterキーを押します。
「EnableUnsafeClientMailRules」を右クリックし修正を選択します。

値データ ボックスで「1」を入力し、し OKを選択します。

【引用】Outlook でマクロを実行するルールの処理を制御する方法-Microsoft
https://support.microsoft.com/ja-jp/topic/%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E8%B5%B7%E5%8B%95%E3%81%BE%E3%81%9F%E3%81%AF-2016-%E3%82%92-outlook-%E3%81%A7%E3%83%9E%E3%82%AF%E3%83%AD%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%83%AB%E3%83%BC%E3%83%AB%E3%81%AE%E5%87%A6%E7%90%86%E3%82%92%E5%88%B6%E5%BE%A1%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%A8-outlook-2013-e4964b72-173c-959d-5d7b-ead562979048

タカヒロ
タカヒロ
スクリプトを実行するメニューを表示させ利用する時は、会社からの許可を受けてからやるようにした方がよいでしょう。
またレジストリの設定変更はWindowsOSに対して深刻な問題が発生するリスクがありますのでご注意ください。

スクリプトを実行するメニューが表示されているか確認する

スクリプトを実行するメニューが表示されているか確認しましょう。

Outlookを起動します。

ルール>仕訳ルールと通知の管理を選択します。

自動仕分けウイザードで「スクリプトを実行する」メニューが表示されていることを確認できました。



Outlook VBAで転送メールを作成する完成イメージ

Outlook VBAで転送メールを作成する完成イメージは以下の通りです。
・前提:仕訳ルールで振り分けられたメールを転送メールとして処理する。

対象メールは前回の記事(【Outlook VBA】転送メールを作成する方法!)で作成したメールとなります。
件名で一部文字列が一致していたら拾うようにします。

・宛先を追加する
これまで手動で入力していた宛先を自動で宛先へ挿入していきます。

・件名へ追記する
通常「FW: 」がつくだけですが、さらに内容を追加をしていきます。

・本文へ追記する
転送する時に一言添えたいところですよね。そんな一文を自動で挿入していきます。

・送信する
処理の最後は送信処理を行います。

また、すぐに送信したくない方は表示のみの選択ができます。

では早速VBAを実装して動かしてみましょう。



Outlook VBAで転送メールを作成する

スクリプトとして実行するVBAを作成します。

以下VBAの中の宛先、件名、本文などの内容を編集していきます。

VBAの説明については以下の記事をご参照ください。

【Outlook VBA】転送メールを作成する方法!宛先追加や件名・本文追記も!

Sub 対象メールをコピーして送信する_カスタムルール(Item As Outlook.MailItem)

Dim objFwItem As Outlook.MailItem

'ルールの条件に該当したメールアイテムを転送としてセットします。
Set objFwItem = Item.Forward

'転送先を指定します。
    '転送先アドレスを指定してください。
    objFwItem.To = "test@extan.jp; test@extan.jp"
    
    'CCを指定してください。
    objFwItem.CC = "test1@extan.jp; test2@extan.jp"
    
    '件名を指定します。
    objFwItem.Subject = objFwItem.Subject & "<メール転送します>"
    
    'メール本文を指定します。
    objFwItem.Body = "メールを転送させて頂きます。" & vbCrLf _
    & "以下転送元の内容となります。" & vbCrLf _
    & "------" & vbCrLf _
    & objFwItem.Body

    '送信します。
    objFwItem.Recipients.ResolveAll
    objFwItem.Send
    
    'オブジェクトの開放
    Set objFwItem = Nothing

End Sub



VBAの実装手順

実装手順は以下の通りです。

「開発」タブ>「Visual Basic」を押します。

「Visual Basic Editor」にて、[Project1] > [Microsoft Outlook Objects] の ThisOutlookSessionをダブルクリックします。

右ペインのコードエリアへ、VBAコードを貼り付けて保存します。



仕訳ルールでスクリプトのVBAを指定する

次に作成したVBAを仕訳ルールの処理に適用していきます。

仕訳ルールを編集し、スクリプトを実行するメニューを選択します。

スクリプトの選択ウインドウ「対象メールをコピーして送信する_カスタムルール」を選択します。

これで実装完了です。



VBAの実行結果を確認する

仕訳ルールの条件に該当するメールを送信します。

該当メールが転送されていますね!



さいごに

いかがでしょうか。

今回は、
Outlookの仕分けルールからスクリプトを実行し、メール転送する方法について
まとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です