アカウントを2つ設定している為(自分用と自分が入っているグループ
アカウント)、一通のメールをそれぞれで受信するので
同じ内容のメールが2つになってしまいます。
「件名・本文・差出人・受信日時などが同じ場合はアカウントA(個人用)の方を削除する」
などVBAでできますでしょうか?
メール管理で苦労しているので、教えていただくと大変助かります。
宜しくお願い致します。
ちなみにMicrosoft Outlook(Outlook Expressではない)です。
確認ですが、グループ宛と個人宛のメールは区別がつくのでしょうか。
同じメールが二つあった場合、一つをゴミ箱に移動するという処理のマクロです。
すべてを受信トレイで受信しているという前提です。
ThisOutlookSession の下に張り付けて試してみてください。
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String) Dim ns As NameSpace Dim mf As MAPIFolder Dim gf As MAPIFolder Set ns = GetNamespace("MAPI") Set mf = ns.Folders("個人用フォルダ").Folders("受信トレイ") Set gf = ns.Folders("個人用フォルダ").Folders("削除済みアイテム") Dim mai As MailItem Dim mis As Variant Dim mi As Variant Dim omi As MailItem mis = Split(EntryIDCollection, ",") For Each mi In mis Set mai = Application.Session.GetItemFromID(mi) For Each omi In mf.Items If mai.EntryID <> omi.EntryID Then If compMail(mai, omi) = True Then mai.Move gf End If End If Next Next End Sub '-------------------------------------------------------- Function compMail(mi1 As MailItem, mi2 As MailItem) As Boolean '-------------------------------------------------------- compMail = False Dim omi As MailItem If mi1.Subject <> mi2.Subject Then Exit Function If mi1.CreationTime <> mi2.CreationTime Then Exit Function If mi1.SenderEmailAddress <> mi2.SenderEmailAddress Then Exit Function If mi1.Body <> mi2.Body Then Exit Function compMail = True End Function |<<
フィルターをかける
今回は 「題名」、「メールの作成時間」、「送信者のメールアドレス」、「内容」を比較して同じものが
あれば、あとから着信したメールを削除済みアイテムフォルダへ移動という処理になっています。
判断する材料を教えていただければ、その修正点をコメントで回答します。
理解が浅く申し訳ないのですが、他社から宛先がグループ名で届くと
A(個人):1つは、そのグループに属する各個人に送られる
B(グループ):私のOutlookにグループ名のアカウントも設定している(そのグループ名で送信している為)
ので、同グループ名として送られる
・・と理解していたので、「宛先」はAの場合、私の個人名になっていると思ったのですが
もしかしたらグループ名かもしれません。(会社で確認しないといけません)
その為、「宛先」で区別が出来ると思ったのですが、もしかしたらできないかもしれません。
「題名」、「メールの作成時間」、「送信者のメールアドレス」、「内容」は確実に毎回同じなので
4項目が「重複してたら削除フォルダへ」で可能でしょうか?
それから・・ThisOutlookSession へ貼り付けてみたのですが、マクロを実行すると
「マクロの有効オプションを選択してください」と出るのですが、ツール内を見てもExcelのように
高・中・低という設定がなく、何処で設定するかご存じでしょうか?
本当にすいません。
個別のあて名が書かれているのであれば、そこで指定ができますが、
すべてのあて名が書かれてるのであれば、これを区別するのはできないと思います。
セキュリティは下記を参照してみてください。
http://www.microsoft.com/japan/office/ork/two/admc04.mspx
Excel と全く同じではないかもしれませんが、おおよそ同じような位置にあると思います。
Outlook2007 では、「ツール」「セキュリティセンター」「マクロのセキュリティ」で
「すべてのマクロに対して警告を表示する」がよいと思います。