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

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

Author: Sun Last Modified: 2025-05-23

時々、他のデバイスからイベントをインポートすると、いくつかの重複したカレンダー項目が存在することがあります。このチュートリアルでは、重複したカレンダー項目を削除するための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 の無料版を体験してください。70以上の素晴らしい機能が永遠に使えます!今すぐダウンロードをクリック!

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

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

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

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

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

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

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

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

kutools for outlook features1 kutools for outlook features2