メインコンテンツへスキップ

Outlookで重複のない2つのフォルダを1つのフォルダにマージするにはどうすればよいですか?

Author: Sun Last Modified: 2025-05-23

Outlookでは、多くのメールアカウントと多数のフォルダーを持っている場合があります。状況によっては、2つのフォルダーを1つにマージし、重複したアイテムを削除したい場合があります。この作業を迅速に解決するにはどうすればよいでしょうか? この記事では、Outlookでこの処理をできるだけ早く行うために役立つVBAコードを紹介します。

VBAコードを使用して重複のない2つのフォルダを1つにマージする

Kutools for Outlookを使用して複数のフォルダをマージし、重複アイテムを削除する


VBAコードを使用して重複のない2つのフォルダを1つにマージする

2つのフォルダを1つにマージし、重複したアイテムを削除するには、次の手順に従ってVBAコードを使用できます:

1. 「Alt + F11」キーを押して「Microsoft Visual Basic for Applications」ウィンドウを開きます。

2. 左ペインの「Project1」から「ThisOutlookSession」をダブルクリックし、以下のコードを右側のスクリプトウィンドウにコピーして貼り付けます。

VBA: 重複なしで2つのフォルダをマージする

Sub MergeOutlookFolders_WithoutDuplicates()
'UpdatebyExtendoffice20180521
Dim xSourceFolder As Outlook.Folder
Dim xTargetFolder As Outlook.Folder
Dim xCount, i As Long
Dim xItem As Object
Dim xSourceItem As Object
Dim xTargetItem As Object
Dim xDictionary As Scripting.Dictionary  'Object
Dim xStr As String
On Error Resume Next
Set xDictionary = New Scripting.Dictionary
Set xSourceFolder = Application.Session.PickFolder
Set xTargetFolder = Application.Session.PickFolder
xCount = 0
If xSourceFolder.DefaultItemType <> xTargetFolder.DefaultItemType Then
    MsgBox "Error: The two folders are not in same type!", vbExclamation + vbOKOnly, "Kutools for Outlook"
    Exit Sub
End If
For i = xSourceFolder.Items.Count To 1 Step -1
    Set xSourceItem = xSourceFolder.Items.Item(i)
    xSourceItem.Move xTargetFolder
Next
For i = xTargetFolder.Items.Count To 1 Step -1
    Set xTargetItem = xTargetFolder.Items.Item(i)
    Select Case xTargetItem.Class
        Case olMail
            With xTargetItem
                xStr = .Subject & .Body & .SentOn
            End With
        Case olAppointment
            With xTargetItem
                xStr = .Subject & .Start & .Duration & .Location & .Body
            End With
        Case olContact
            With xTargetItem
                xStr = .FullName & .Email1Address & .Email2Address & .Email3Address
            End With
        Case olTask
            With xTargetItem
                xStr = .Subject & .StartDate & .DueDate & .Body
            End With
    End Select
    If xDictionary.Exists(xStr) = True Then
        xTargetItem.Delete
        xCount = xCount + 1
    Else
        xDictionary.Add xStr, True
    End If
Next i
If xCount <> 0 Then
    MsgBox xCount & " duplicates removed when merging!", vbInformation + vbOKOnly, "Kutools for Outlook"
End If
End Sub

doc merge folders without duplicates 1

3. 「ツール」>「参照設定」をクリックし、表示されるダイアログで「Microsoft Scripting Runtime」チェックボックスをオンにします。

doc merge folders without duplicates 2 doc arrow right doc merge folders without duplicates 3

4. 「OK」をクリックします。次に「F5」キーを押してコードを実行します。最初にマージしたいフォルダを選択するように求めるダイアログが表示されます(注意:最初のフォルダ内のすべてのアイテムは、2番目のフォルダとマージ後に削除されます)。
doc merge folders without duplicates 4

5. 「OK」をクリックします。2番目に表示されるダイアログで、比較してマージしたい2番目のフォルダを選択します。
doc merge folders without duplicates 5

6. 「OK」をクリックします。これで、最初のフォルダ内のすべてのアイテムが2番目のフォルダに移動され、重複したアイテムは削除されます。
doc merge folders without duplicates 6


Kutools for Outlookを使用して複数のフォルダをマージし、重複アイテムを削除する

VBAコードに慣れていない場合は、「Kutools for Outlook」という便利なアドインを使用してみてください。「Consolidating Folders(フォルダの整理)」および「Duplicate Emails(重複メール)」機能により、このタスクを簡単かつ迅速に処理できます。

Kutools for Outlookで究極のメール効率を解き放とう!強力な70の機能を永久に無料で利用できます。今すぐ無料版をダウンロード

複数のフォルダをマージする

1. 「Kutools Plus」>「Consolidating Folders(フォルダの整理)」をクリックし、「Merge multiple folders into one(複数のフォルダを1つに整理する)」ダイアログで「Add(追加)」をクリックして、マージしたいフォルダをリストに追加し、ターゲットフォルダを選択します。
doc consolidate and remove duplicate 1

2. 「OK」>「OK」をクリックします。これで、選択されたフォルダ内のすべてのアイテムが指定されたフォルダにマージされました。
doc consolidate and remove duplicate 2

重複アイテムを削除する

3. 「Kutools」>「Delete Duplicate(重複を削除)」>「Duplicate Emails(重複メール)」をクリックします。次に、「Duplicate messages(重複メール)」ダイアログで、重複を削除したいフォルダをチェックします。
doc consolidate and remove duplicate 3

4. 「Next(次へ)」をクリックします。「Duplicate Messages Settings(重複メール設定)」ダイアログで、メールを比較するために使用する基準を指定します。その後、「Delete duplicate messages(重複メールを削除する)」オプションをチェックし、「Compare for duplicate messages within a single folder(単一のフォルダ内で比較する)」を選択します。
doc consolidate and remove duplicate 4

5. 「Next(次へ)」>「Next(次へ)」をクリックすると、重複メールがフィルタリングされます。「Delete duplicate message(重複メールを削除)」ボタンをクリックし、「OK」を押して重複メールを正常に削除します。
doc consolidate and remove duplicate 5 doc merge folders without duplicates 6


最高のオフィス生産性ツール

速報: Kutools for Outlook が無料版をリリース!

新しい Kutools for Outlook の無料版を体験してください。70以上の素晴らしい機能が永遠に使えます!今すぐダウンロードをクリック!

🤖 Kutools AI : 高度なAI技術を使用して、メールの返信、要約、最適化、拡張、翻訳、作成を簡単に行います。

📧 メール自動化: 自動返信 (POPとIMAPで利用可能) / メール送信のスケジュール / メール送信時にルールによる自動 CC/BCC / 自動転送 (高度なルール) / 自動挨拶追加 / 複数の宛先を持つメールを個別のメールに自動的に分割...

📨 メール管理: メールの取り消し / 件名やその他によるスパムメールのブロック / 重複したメールの削除 / 高度な検索 / フォルダーを整理...

📁 添付ファイルプロ: バッチ保存 / バッチ切り離し / バッチ圧縮 / 自動保存 / 自動的に切り離す / 自動圧縮...

🌟 インターフェースマジック: 😊より美しくクールな絵文字 /重要なメールが来たときに通知 / クローズ中ではなくOutlookを最小化...

👍 ワンクリックの驚き: 全員に【Attachment】付きで返信 / フィッシング対策メール / 🕘送信者のタイムゾーンを表示...

👩🏼‍🤝‍👩🏻 連絡先とカレンダー: 選択したメールから連絡先を一括追加 /連絡先グループを個別のグループに分割 / 誕生日のリマインダーを削除...

Kutools for Outlook をワンクリックで即座にアンロック。待たずに今すぐダウンロードして効率を高めましょう!

kutools for outlook features1 kutools for outlook features2