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

Outlook: 重複するカレンダー項目を削除する方法

Author: Sun Last Modified: 2025-08-06

時々、他のデバイスからイベントをインポートすると、いくつかの重複したカレンダー項目が存在することがあります。このチュートリアルでは、重複したカレンダー項目を削除するための2つの異なる方法を紹介します。一つは、重複が少ない場合に1つずつ削除する方法で、もう一つはVBAを使用してすべての重複を一度に削除する方法です。

手動で1つずつ重複するカレンダー項目を削除する

VBAを使用して一度に重複するカレンダー項目を削除する


手動で1つずつ重複するカレンダー項目を削除する

 

重複するカレンダー項目を1つずつ削除するには、まず重複を明確に確認できるように特定の順序でリスト化し、その後、1つずつ削除する必要があります。

1. 通常、カレンダーは「カレンダー」ビューになっています。重複を削除したいカレンダーをアクティブにし、「表示」>「表示の変更」>「リスト」をクリックします。

steps on manually removing duplicates calendar items one by one

これで、カレンダーがリスト形式で表示されます。

steps on manually removing duplicates calendar items one by one
steps on manually removing duplicates calendar items one by one

2. 次に、アイテムが重複しているかどうかを比較するために条件を指定します。例えば、件名が同じかどうかを比較するとします。カレンダーリストの「件名」をクリックすると、同じ件名を持つすべてのアイテムが一緒に配置されます。

steps on manually removing duplicates calendar items one by one

3. これで、同じ件名を持つアイテムを右クリックして「削除」を選択することで、1つずつ削除できます。

steps on manually removing duplicates calendar items one by one

OutlookのAIメールアシスタント:スマートな返信、クリアなコミュニケーション(ワンクリックで魔法のような操作!) 無料

Kutools for OutlookのAIメールアシスタントを使用して、毎日のOutlookタスクを効率化しましょう。この強力なツールは、過去のメールから学習し、インテリジェントで正確な返信を提供し、メールの内容を最適化し、メッセージの作成や修正を手間なく行うことができます。
doc ai email handle

この機能がサポートする内容:

  • スマート返信:過去の会話に基づいて調整された、的確で使用準備の整った返信を取得します。
  • 強化されたコンテンツ:メールの文章を自動的に洗練させ、明瞭さと影響力を高めます。
  • 簡単な作成:キーワードを入力するだけで、複数のライティングスタイルでAIが残りを処理します。
  • インテリジェント拡張:文脈を理解した提案で考えを広げます。
  • 要約:長文のメールを瞬時に簡潔にまとめます。
  • グローバル対応:メールを簡単にどの言語にも翻訳できます。

この機能がサポートする内容:

  • スマートメール返信
  • 最適化されたコンテンツ
  • キーワードベースの下書き
  • インテリジェントなコンテンツ拡張
  • メールの要約
  • 多言語翻訳

何より、この機能は永遠に完全無料です今すぐAIメールアシスタントをダウンロードしてお楽しみください


VBAを使用して一度に重複するカレンダー項目を削除する

 

ここでは、さまざまなケースにおいて、カレンダーフォルダー内のすべての重複するカレンダー項目を削除できるVBAを紹介します。

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

2. 「挿入」>「モジュール」をクリックして新しい空白のモジュールを作成し、以下のコードをコピーしてモジュールに貼り付けます。

VBA:特定のカテゴリ内のすべての重複するカレンダー項目を削除する

'Sub RemoveDuplicateCalendar()
'UpdatebyExtendoffice20220413
  Dim xStores As Stores
  Dim xStore As Store
  Dim xRootFolder As Folder
  Dim xFolder As Object
  Set xStores = Application.Session.Stores
  For Each xStore In xStores
    Set xRootFolder = xStore.GetRootFolder
    For Each xFolder In xRootFolder.Folders
      Call ProcessFolders(xFolder)
    Next
  Next
  Set xStores = Nothing
End Sub

Sub ProcessFolders(ByVal CurrentFld As Folder)
  Dim xDictionary As Object
  Dim i As Long
  Dim xItem As Object
  Dim xKey As String
  Dim xSubFld As Folder
  On Error Resume Next
  If CurrentFld.DefaultItemType <> olAppointmentItem Then Exit Sub
  Set xDictionary = CreateObject("Scripting.Dictionary")
  For i = CurrentFld.Items.Count To 1 Step -1
    Set xItem = CurrentFld.Items.Item(i)
    'change categories as you need in below script
    If xItem.Categories = "date" Then
    'change the comparing items as you need
      xKey = xItem.Subject & xItem.Location & xItem.Body & xItem.Categories
      If xDictionary.Exists(xKey) = True Then
        xItem.Delete
      Else
        xDictionary.Add xKey, True
      End If
    End If
  Next i
  For Each xSubFld In CurrentFld.Folders
    ProcessFolders xSubFld
  Next
End Sub

このVBAでは、件名、場所、本文、カテゴリを比較して「日付」カテゴリ内のすべての重複を削除します。必要に応じてこれらを変更できます。

steps on using VBA to remove duplicates calendar items at once time

3. そして「F5」 キーを押すか、または「実行」をクリックしてコードを実行します。「マクロ」ダイアログがポップアップ表示され、「RemoveDuplicateCalendar」を選択して「実行」をクリックします。steps on using VBA to remove duplicates calendar items at once time .

steps on using VBA to remove duplicates calendar items at once time

これで、「日付」カテゴリ内の重複項目が削除されました。

VBA:カテゴリ全体にわたってすべての重複するカレンダー項目を削除する

Sub RemoveDuplicateCalendar()
'UpdatebyExtendoffice20220413
  Dim xStores As Stores
  Dim xStore As Store
  Dim xRootFolder As Folder
  Dim xFolder As Object
  Set xStores = Application.Session.Stores
  For Each xStore In xStores
    Set xRootFolder = xStore.GetRootFolder
    For Each xFolder In xRootFolder.Folders
      Call ProcessFolders(xFolder)
    Next
  Next
  Set xStores = Nothing
End Sub

Sub ProcessFolders(ByVal CurrentFld As Folder)
  Dim xDictionary As Object
  Dim i As Long
  Dim xItem As Object
  Dim xKey As String
  Dim xSubFld As Folder
  On Error Resume Next
  If CurrentFld.DefaultItemType <> olAppointmentItem Then Exit Sub
  Set xDictionary = CreateObject("Scripting.Dictionary")
  For i = CurrentFld.Items.Count To 1 Step -1
    Set xItem = CurrentFld.Items.Item(i)
    'change the comparing items as you need
      xKey = xItem.Subject & xItem.Location & xItem.Body & xItem.Categories
      If xDictionary.Exists(xKey) = True Then
        xItem.Delete
      Else
        xDictionary.Add xKey, True
      End If
  Next i
  For Each xSubFld In CurrentFld.Folders
    ProcessFolders xSubFld
  Next
End Sub

このコードを実行すると、各カテゴリ内で件名、場所、本文、カテゴリが同じであるすべての重複が削除されます。

steps on using VBA to remove duplicates calendar items at once time
steps on using VBA to remove duplicates calendar items at once time

注意: 上記のVBAは、サブフォルダーを含むカレンダーフォルダーで動作します。


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

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

新しくなった Kutools for Outlook を100以上の素晴らしい機能とともに体験してください!今すぐダウンロード!

🤖 Kutools AI : 高度なAI技術を活用し、メールの返信、要約、最適化、拡張、翻訳、作成を効率良くこなします。

📧 メール自動化: 自動返信(POPとIMAPに対応) / メール送信のスケジュール設定 /送信時にルールで自動 CC/BCC / 高度なルールによる自動転送 / 挨拶文を自動追加 / 複数宛先のメールを自動で個別のメールに分割 ...

📨 メール管理: メールの取り消し / 件名やその他の条件で迷惑メールをブロック / 重複したメールの削除 / 高度な検索 / フォルダーを整理 ...

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

🌟 インターフェースマジック: 😊もっとキレイで楽しい絵文字 /重要なメールの到着をお知らせ / Outlookを閉じずに最小化 ...

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

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

お好みの言語で Kutools をご利用いただけます ― 英語、スペイン語、ドイツ語、フランス語、中国語など40以上をサポート!

Kutools for Outlook はワンクリックですぐにアンロックできます。今すぐダウンロードして効率をアップしましょう!

kutools for outlook features1 kutools for outlook features2