人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Outlook VBAです。

アカウントを2つ設定している為(自分用と自分が入っているグループ
アカウント)、一通のメールをそれぞれで受信するので
同じ内容のメールが2つになってしまいます。

「件名・本文・差出人・受信日時などが同じ場合はアカウントA(個人用)の方を削除する」
などVBAでできますでしょうか?

メール管理で苦労しているので、教えていただくと大変助かります。
宜しくお願い致します。

ちなみにMicrosoft Outlook(Outlook Expressではない)です。

●質問者: hananeko_0
●カテゴリ:ビジネス・経営 コンピュータ
✍キーワード:Microsoft Outlook Outlook Express VBA アカウント
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● falcon2
●10ポイント

フィルターをかける


2 ● Mook
●60ポイント ベストアンサー

確認ですが、グループ宛と個人宛のメールは区別がつくのでしょうか。

同じメールが二つあった場合、一つをゴミ箱に移動するという処理のマクロです。


すべてを受信トレイで受信しているという前提です。

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
|<<
◎質問者からの返答

Mookさん、いつもありがとうございますっ

グループ宛と個人宛の区別はつき、すべて受信トレイ内にあります。

ご回答いただいた内容を会社で確認してみます!

感謝です!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ