KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Word 文書の表から重複行を削除する(完全ガイド)

著者Sun変更日

Word の表に重複行があると、文書がわかりにくく、非プロフェッショナルな印象を与えてしまいます。特にコピーしたデータやインポートしたレポート、アンケート結果などを扱う際には、分析が難しくなることも。
朗報です!Word にも、重複行をスッキリ整理するための確実な方法がいくつかあります。以下では、初心者向けから高度な自動化まで、実践的な3 つの方法をステップ・バイ・ステップでご紹介します。

テーブルから重複する行を削除

Word の表から重複行を削除する

まとめ


方法1:Excel を使用して重複行を削除

Microsoft Excel はデータ管理に特化しているため、重複データを処理する最も信頼性の高い方法は、一時的に表をExcel に移し、処理後に再びWord に戻すことです。

  1. 表をコピーする:
    Word で表にカーソルを合わせ、左上隅の十字アイコンをクリックして表全体を選択します。その後、Ctrl + Cを押してください。
    Word から表をコピー
  2. Excel に貼り付ける:
    空のExcel ワークブックを開き、セル A1 を選択して「Ctrl + V」を押してください。
  3. Excel での重複を削除:
    • データ範囲をハイライト表示します。
    • 上部のデータリボンにあるタブに移動してください。
    • クリックします:重複を削除データツールグループ内)。
    • すべての列にチェックが入っていることを確認して、OKをクリックしてください。
      Excel で重複を削除
    • Excel は、削除された重複行の件数を表示します。
      Excel は削除された重複行の数を表示します
  4. Word に戻す:
    Excel でクリーンアップしたデータをコピーし、Word 文書に戻って元の表を削除した後、Ctrl + V を押して重複のない行を貼り付けます。
メリット
  • 非常に正確
  • プログラミング不要
  • 大きなテーブルにも対応
制限事項
  • 一度に1 つのテーブルのみ対応
  • Word とExcel 間の切り替えが必要

方法2:VBA コードを使用して重複行を削除(1 つまたはすべての表から)

大規模なWord 表を頻繁に扱い、文書内での作業を自動化したい場合は、VBA が有力な選択肢です。この方法では、行を比較してWord 内で直接重複を削除できます。

この VBA コードを使えば、現在のWord 文書内の特定の表、またはすべての表から重複行を削除し、各ユニーク行の最初に現れたものだけを残すことができます。

⚠️ ヒント:VBA コードを実行する前に、必ず文書のバックアップを取ってください。
  1. Alt + F11を押して、Microsoft Visual Basic for Applications ウィンドウを開きましょう。
  2. クリックして挿入>モジュールを選択し、新しいモジュールを作成します。以下の VBA コードをモジュールウィンドウにコピー&ペーストしてください。
    Public Sub DeleteDuplicateRowsClean()
        Dim xTable As Table
        Dim xDic As Object
        Dim i As Long, j As Long
        Dim xStr As String
    
        If ActiveDocument.Tables.Count = 0 Then
            MsgBox "There is no table in this file", vbInformation, "Kutoolsfor word"
            Exit Sub
        End If
    
        Set xDic = CreateObject("Scripting.Dictionary")
        Application.ScreenUpdating = False
        If Selection.Information(wdWithInTable) Then
            ProcessTable Selection.Tables(1), xDic
        Else
            For i = 1 To ActiveDocument.Tables.Count
                ProcessTable ActiveDocument.Tables(i), xDic
                xDic.RemoveAll
            Next i
        End If
    
        Application.ScreenUpdating = True
        MsgBox "Complete!", vbInformation
    End Sub
    
    
    Private Sub ProcessTable(targetTable As Table, dic As Object)
        Dim r As Long
        Dim rowText As String
    
        For r = targetTable.Rows.Count To 1 Step -1
            rowText = targetTable.Rows(r).Range.Text
            If dic.Exists(rowText) Then
                targetTable.Rows(r).Delete
            Else
                dic.Add rowText, True
            End If
        Next r
    End Sub
          
  3. コードウィンドウを閉じて、次のいずれかの操作を行ってください:
    • 特定のテーブルから重複を削除するには:
      対象のテーブル内の任意の場所をクリックしてください。
    • すべてのテーブルから重複を削除するには:
      カーソルがどのテーブル内にもないことをご確認ください。
  4. Alt + F8を押して、DeleteDuplicateRowsCleanマクロを選択し、実行をクリックしてください。

結果:
重複する行が、選択された表または文書内のすべての表から自動的に削除されます。

注記:上記のコードは大文字と小文字を区別です。大文字小文字を区別せずに重複行を削除したい場合は、以下のコードをご使用ください:
Public Sub DeleteDuplicateRowsIgnoreCase()
    Dim xTable As Table
    Dim xDic As Object
    Dim i As Long

    If ActiveDocument.Tables.Count = 0 Then
        MsgBox "There are no tables", vbInformation, "Kutoolsfor word"
        Exit Sub
    End If
    Set xDic = CreateObject("Scripting.Dictionary")
    xDic.CompareMode = 1

    Application.ScreenUpdating = False

    If Selection.Information(wdWithInTable) Then
        ProcessTable Selection.Tables(1), xDic
    Else
        For i = 1 To ActiveDocument.Tables.Count
            xDic.RemoveAll
            ProcessTable ActiveDocument.Tables(i), xDic
        Next i
    End If

    Application.ScreenUpdating = True
    MsgBox "complete", vbInformation
End Sub

Private Sub ProcessTable(targetTable As Table, dic As Object)
    Dim r As Long
    Dim rowText As String
    For r = targetTable.Rows.Count To 1 Step -1
        rowText = targetTable.Rows(r).Range.Text
        If dic.Exists(rowText) Then
            targetTable.Rows(r).Delete
        Else
            dic.Add rowText, True
        End If
    Next r
End Sub
    

方法3:Kutools for Word を使用して重複行/列を削除(1 つまたはすべての表から)

Word の表から重複する行を削除する最も高速で使いやすい方法をお探しですか? それなら、Kutools for Word が最適なソリューションです。手作業や VBA スクリプトとは異なり、Kutools を使えば数回クリックするだけで、単一の表はもちろん、文書内のすべての表からも簡単に重複データを削除できます。コーディングもExcel へのコピーも、複雑な設定も一切不要。特に大規模な表や複数の表を頻繁に扱い、即座に正確な結果を得たいユーザーにぴったりです。

Kutools for Word をダウンロードしてインストールした後は、以下の手順に従ってください:

  1. 移動先:KUTOOLS PLUSタブをクリックし、次に > 空白の行/列を削除をクリックしてダイアログボックスを開きます。
    空白の行/列を削除機能をクリック
  2. 表内の空白行または重複行/列の削除ダイアログボックスで、以下のオプションを指定します: dialog box, specify the following options:
    1. 範囲(検索対象)を選択
      「検索対象」のドロップダウンリストで、以下のいずれかのオプションを選択します:
      • 選択された表(複数可) – 選択したテーブルからのみ、重複する行を削除します。
      • アクティブなドキュメント内のすべてのテーブル – 現在の文書にあるすべてのテーブルから重複する行を削除します。
    2. 削除タイプを指定して、削除したいまたはを選択してください。
    3. 重複する行または列を削除するには、該当する行/列を選択してください。
    4. オプションを設定
      • 大文字と小文字を区別(オプション):
        大文字と小文字の違いを別の値として扱いたい場合は、このオプションを有効にしてください。
      • 空白行を削除する(オプション):
        空の行も同時に削除したい場合は、このオプションをオンにしてください。
    5. クリックしてください:OK
      ダイアログボックスでオプションを指定

結果:
Kutools が指定された表を即座にスキャンし、指定した重複行または列を削除します。
Kutools for Word を使用して重複する行/列を削除

メリット
  • 極めて高速
  • 1 つ、選択した、またはすべてのテーブルに対応
  • VBA やExcel 不要
  • 非技術者に最適
Kutools for Word

Kutools for Word は、重複行や空白行をわずか数回のクリックで削除できる強力なテーブルツールを提供します。コーディングもExcel も、複雑な設定も一切不要です。


まとめ

Word の表から重複行を削除するのは、Word に重複除去の組み込み機能がないため難しい作業です。しかし、適切な方法を選べば、データを効率的かつ正確にクリーンアップできます。

  • Excel は、単一の表を扱い、大量のデータを処理する際に信頼性が高く、特にコードを使わずに慣れ親しんだ操作で処理したい場合に最適です。
  • VBA コードを使用する方法は、1 つまたはすべての表から重複行を自動的に削除したい上級ユーザー向けですが、技術的な知識とマクロを有効にしたドキュメントが必要です。
  • Kutools for Word を使えば、Excel や VBA を一切使わず、数回のクリックで1 つまたはすべての表から重複行を削除できる、最速かつ最もユーザーフレンドリーな解決策です。

ご自身のスキルレベルと文書の複雑さに最も適した方法を選ぶことで、Word の表を常にクリーンで正確、かつ管理しやすく保ち、時間を節約しながら繰り返しの手作業を回避できます。