Outlookで重複せずに複数のフォルダのアイテムをすばやくマージする方法

今すぐ共有:

複数のOutlookフォルダーのすべてのアイテムをマージし、重複がないことを保証する場合は、この記事で紹介した方法を使用できます。 それはあなたがコルクのようにそれを達成するのを助けるためにVBAコードを使用しています。

Outlookで重複することなく、複数のフォルダのアイテムをすばやくマージする

複数のOutlook連絡先フォルダーのすべての連絡先をマージするなど、複数のOutlookフォルダーのアイテムをマージしたい場合があります。 この状況で、これらのフォルダ間に重複する連絡先がある場合は、マージ中に重複が自動的に削除されることを期待する必要があります。 このような状況では、次のVBAコードを使用して簡単に実現できます。

重複することなく複数のフォルダからアイテムをマージする

  1. にtarで、Outlookアプリケーションを起動します。
  2. 次に、Outlookのメイン画面で[Alt + F11]キーボタンを押して、OutlookVBAエディターにアクセスする必要があります。
  3. 次に、「Microsoft Visual Basic for Applications」ウィンドウで、使用されていないモジュールを開く必要があります。
  4. その後、次のVBAコードをこのモジュールにコピーする必要があります。
'Here we take "merging two folders" as an example
Sub MergeOutlookFolders_WithoutDuplicates()
    Dim objSourceFolder As Outlook.Folder
    Dim objTargetFolder As Outlook.Folder
    Dim i, n, x As Long
    Dim objItem As Object
    Dim objDictionary As Object
    Dim strKey As String
 
    Set objSourceFolder = Application.Session.PickFolder
    Set objTargetFolder = Application.Session.PickFolder

    If objSourceFolder.DefaultItemType <> objTargetFolder.DefaultItemType Then
       MsgBox "Error: The two folders are not in same type!", vbExclamation + vbOKOnly
    Else
       'Merge the two folders
       For i = objSourceFolder.Items.count To 1 Step -1
           Set objItem = objSourceFolder.Items.Item(i)
           objItem.Move objTargetFolder
       Next i
 
       Set objDictionary = CreateObject("scripting.dictionary")
 
       'Remove the duplicates
       x = 0
       For n = objTargetFolder.Items.count To 1 Step -1
           Set objItem = objTargetFolder.Items.Item(n)
 
           Select Case objItem.Class
                  Case olMail
                       strKey = objItem.Subject & "," & objItem.Body & "," & objItem.SentOn
                  Case olAppointment
                       strKey = objItem.Subject & "," & objItem.Start & "," & objItem.Duration & "," & objItem.Location & "," & objItem.Body
                  Case olContact
                       strKey = objItem.FullName & "," & objItem.Email1Address & "," & objItem.Email2Address & "," & objItem.Email3Address
                  Case olTask
                       strKey = objItem.Subject & "," & objItem.StartDate & "," & objItem.DueDate & "," & objItem.Body
           End Select
 
           strKey = Replace(strKey, ", ", Chr(32))
 
           If objDictionary.Exists(strKey) = True Then
              objItem.Delete
              x = x + 1
           Else
              objDictionary.Add strKey, True
           End If
      Next n
 
      'Prompt you of the count of removed duplicates
      If x <> 0 Then
         MsgBox x & " duplicates removed when merging!", vbInformation + vbOKOnly
      End If
    End If
End Sub

VBAコード-重複することなく複数のフォルダーからアイテムをマージする

  1. 後で、Outlookのマクロ設定を確認して、マクロが有効になっていることを確認する必要があります。
  2. 最後に、試してみることができます。
  • まず、新しいモジュールウィンドウに戻ります。
  • 次に、F5キーボタンを押して、このマクロをトリガーします。
  • 次に、マージするXNUMXつのフォルダーを選択する必要があります。 最初のものはソースのものであり、XNUMX番目のものは tarXNUMXつ取得します。
  • その後、Outlookはすべてのアイテムをソースフォルダから tarXNUMXつ取得します。 また、当面の間、重複は自動的に削除されます。
  • 最終的に、以下のスクリーンショットのように、削除された重複の数を求めるメッセージが表示される場合があります。削除された重複の数を求めるメッセージ

小さなエラーは大きなクラッシュにつながる可能性があります

多数の優れた機能が搭載されているにもかかわらず、Outlookは依然としてエラーや破損の影響を受けやすくなっています。 おそらく、さまざまなOutlookの問題が発生しています。 多くのユーザーは、ランダムエラーを無視する傾向があります。 ただし、深刻なOutlookのクラッシュを引き起こすのは小さなエラーであり、Outlookファイルを危険にさらします。 したがって、小さなエラーを無視するべきではありません。 代わりに、できるだけ早くそれらを削除する必要があります。 さらに、あなたは適切な状態を維持したほうがよい PST修復 などのツール DataNumen Outlook Repair。 その高い回復率により、このユーティリティは同業他社を引き継いでいます。

著者紹介:

Shirley Zhangは、のデータ復旧の専門家です。 DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 破損したSQL と見通し修理ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com

今すぐ共有:

コメントは締め切りました。