一度目の送信は保留し、二度目の送信のみルールを設定するためのマクロ


コメントにて以下のようなご要望をいただきました。


上記の例に似た事例で以下のようなことが仕分けにて可能か御教示下さい。
Outlookのバージョンは2007です。

1)前提条件
メールは手動送信設定(メッセージを作成後「送信」ボタン押下で送信トレイにメールが一時保留され、一時保留されたメールを開いて内容確認後に、「送信」及び「送受信」ボタン押下にてメール送信)とする。

2)実現したい動作
送信済みアイテム内にフォルダ「123」を作成し、件名に「123」の文字列が含まれる送信メールのみを送信済みアイテム内のフォルダ「123」へ移動させる。
また、「送信済みアイテム」フォルダの中には、件名が「123」を含むメールは保存されないようにする。

3)仕分けルール実行結果
送信メールの仕訳ルール(件名に「123」を含むメールを、「123」フォルダへ移動する)を作成・実行した場合、「送信」または「送受信」ボタンを押下した回数分のメールが「123」フォルダに作成されてしまう。

また、上記より、送信メールの仕分けルールは、メールが送信されたタイミング(PCより外部へ転送された時点)でなく、「送信」または「送受信」ボタンを押下したタイミングで実行されるように見えますが、この動作は仕様でしょうか。(でしたら、上記の実現したい動作は実行不可能かと存じます)



たとえば 1 年先の配信日時を設定するというような方法で送信の保留をするということでよければ、ご要望の動作を満たせるのではないかと思います。

下記のマクロは、配信日時が設定されていない場合には 1 度目の送信として配信日時を 1 年先にし、設定されていれば 2 度目の送信ということで配信日時指定を 1 分後にして送信するというマクロです。また、1 度目の送信の際には分類項目に ”送信保留中” と設定するので、送信ルールで「分類項目が送信保留中の場合を除く」という条件を付けることで 1 度目の送信の際にルールが適用されないようにできます。

' ここをトリプルクリックでマクロ全体を選択できます。
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    If Item.DeferredDeliveryTime = #1/1/4501# Then
        Item.DeferredDeliveryTime = DateAdd("yyyy", 1, Now)
        Item.Categories = "送信保留中"
    Else
        Item.DeferredDeliveryTime = DateAdd("n", 1, Now)
        Item.Categories = ""
    End If
End Sub

マクロの登録方法やメニューへの追加について

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中