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

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

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

Author Sun Last modified

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(重複メール)」機能により、このタスクを簡単かつ迅速に処理できます。

Outlookの非効率さにさようなら!Kutools for Outlookは、一括メール処理を簡単に行えます - さらに、無料のAI機能も搭載!今すぐKutools for Outlookをダウンロード!

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

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 を100以上の素晴らしい機能とともに体験してください!今すぐダウンロードしてみましょう!

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

📧 メール自動化: 自動返信(POPとIMAPに対応) / スケジュール電子メールを送信 /送信時にルールで自動 CC/BCC / 高度なルールによる自動転送 / 挨拶を自動追加 / 複数宛先メールを自動的に一通ずつ分割...

📨 メール管理: メールの取り消し / 件名などで詐欺メールをブロックする / 重複メールを削除 / 高度な検索 / フォルダーを整理...

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

🌟 インターフェイスマジック: 😊さらに美しくてクールな絵文字 /重要なメール到着時に通知 / Outlookを閉じるのではなくグループを最小化...

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

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

お好みの言語で Kutools を利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語など40以上の言語に対応!

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

kutools for outlook features1 kutools for outlook features2

🚀 ワンクリックダウンロード — Office用アドインをすべて入手

強くおすすめ: Kutools for Office(5-in-1)

ワンクリックで五つのインストーラーを同時ダウンロード ― Kutools for Excel、Outlook、Word、PowerPointOffice Tab Pro 今すぐダウンロード!

  • ワンクリックの便利さ: 五つのセットアップパッケージを一度にダウンロードできます。
  • 🚀 あらゆるOffice作業に準備完了: 必要なアドインをいつでもインストール可能です。
  • 🧰 含まれるもの: Kutools for Excel / Kutools for Outlook / Kutools for Word / Office Tab Pro / Kutools for PowerPoint