Note: The other languages of the website are Google-translated. Back to English

Word文書のテーブルから重複する行を削除するにはどうすればよいですか?

Word文書では、行が重複しているテーブルがいくつかあり、それらを削除して最初の外観を維持したい場合があります。 この場合、重複するものをXNUMXつずつ手動で削除することを選択できます。また、VBAコードを使用することも選択できます。

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


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

1.重複する行を削除するテーブルにカーソルを置き、を押します。 Altキー+ F11 を有効にするためのキー アプリケーション向け Microsoft Visual Basic 窓。

2。 クリック インセット > モジュール 新しいモジュールを作成します。
doc重複行を削除table01

3.以下のコードをコピーして、新しいコードに貼り付けます モジュール スクリプト。

VBA:Wordのテーブルから重複する行を削除します

Public Sub DeleteDuplicateRows2()
'UpdatebyExtendoffice20181011
    Dim xTable As Table
    Dim xRow As Range
    Dim xStr As String
    Dim xDic As Object
    Dim I, J, KK, xNum As Long
    If ActiveDocument.Tables.Count = 0 Then
        MsgBox "This document does not have table(s).", vbInformation, "Kutools for Word"
        Exit Sub
    End If
    Application.ScreenUpdating = False
    Set xDic = CreateObject("Scripting.Dictionary")
    If Selection.Information(wdWithInTable) Then
        Set xTable = Selection.Tables(1)
        For I = xTable.Rows.Count To 1 Step -1
            Set xRow = xTable.Rows(I).Range
            xStr = xRow.Text
            xNum = -1
            If xDic.Exists(xStr) Then
'                xTable.Rows(I).Delete
                For J = xTable.Rows.Count To 1 Step -1
                    If (xStr = xTable.Rows(J).Range.Text) And (J <> I) Then
                        xNum = xNum + 1
                        xTable.Rows(J).Delete
                    End If
                Next
                I = I - xNum
            Else
                xDic.Add xStr, I
            End If
        Next
    Else
        For I = 1 To ActiveDocument.Tables.Count
            Set xTable = ActiveDocument.Tables(I)
            xNum = -1
            xDic.RemoveAll
            For J = xTable.Rows.Count To 1 Step -1
                Set xRow = xTable.Rows(J).Range
                xStr = xRow.Text
                xNum = -1
                If xDic.Exists(xStr) Then
    '                xTable.Rows(I).Delete
                    For KK = xTable.Rows.Count To 1 Step -1
                        If (xStr = xTable.Rows(KK).Range.Text) And (KK <> J) Then
                            xNum = xNum + 1
                            xTable.Rows(KK).Delete
                        End If
                    Next
                    J = J - xNum
                Else
                    xDic.Add xStr, J
                End If
            Next
        Next
    End If
    Application.ScreenUpdating = True
End Sub

doc重複行を削除table02

4。 押す F5 キーを押してコードを実行すると、重複するすべての行が削除されます。
doc重複行を削除table03

注意:上記のコードでは大文字と小文字が区別されます。大文字と小文字が区別されない場合に重複する行を削除する場合は、以下のコードを使用できます。

Public Sub DeleteDuplicateRows2()
'UpdatebyExtendoffice20181011
    Dim xTable As Table
    Dim xRow As Range
    Dim xStr As String
    Dim xDic As Object
    Dim I, J, KK, xNum As Long
    If ActiveDocument.Tables.Count = 0 Then
        MsgBox "This document does not have table(s).", vbInformation, "Kutools for Word"
        Exit Sub
    End If
    Application.ScreenUpdating = False
    Set xDic = CreateObject("Scripting.Dictionary")
    If Selection.Information(wdWithInTable) Then
        Set xTable = Selection.Tables(1)
        For I = xTable.Rows.Count To 1 Step -1
            Set xRow = xTable.Rows(I).Range
            xStr = UCase(xRow.Text)
            xNum = -1
            If xDic.Exists(xStr) Then
'                xTable.Rows(I).Delete
                For J = xTable.Rows.Count To 1 Step -1
                    If (xStr = xTable.Rows(J).Range.Text) And (J <> I) Then
                        xNum = xNum + 1
                        xTable.Rows(J).Delete
                    End If
                Next
                I = I - xNum
            Else
                xDic.Add xStr, I
            End If
        Next
    Else
        For I = 1 To ActiveDocument.Tables.Count
            Set xTable = ActiveDocument.Tables(I)
            xNum = -1
            xDic.RemoveAll
            For J = xTable.Rows.Count To 1 Step -1
                Set xRow = xTable.Rows(J).Range
                xStr = UCase(xRow.Text)
                xNum = -1
                If xDic.Exists(xStr) Then
    '                xTable.Rows(I).Delete
                    For KK = xTable.Rows.Count To 1 Step -1
                        If (xStr = xTable.Rows(KK).Range.Text) And (KK <> J) Then
                            xNum = xNum + 1
                            xTable.Rows(KK).Delete
                        End If
                    Next
                    J = J - xNum
                Else
                    xDic.Add xStr, J
                End If
            Next
        Next
    End If
    Application.ScreenUpdating = True
End Sub

ドキュメントのすべてのテーブルで重複する行を削除する場合は、テーブルの外側のドキュメントの任意の場所にカーソルを置き、上記のコードのいずれかを適用します。


Firefox、Chrome、Internet Explore10などの複数のWordドキュメント/ Excelワークブックのタブブラウジングと編集!

Firefox / Chrome / IEで複数のウェブページを表示し、対応するタブをクリックしてそれらを簡単に切り替えることはおなじみかもしれません。 ここで、Officeタブは同様の処理をサポートしており、XNUMXつのWordウィンドウまたはExcelウィンドウで複数のWordドキュメントまたはExcelワークブックを参照し、タブをクリックすることでそれらを簡単に切り替えることができます。
Officeタブの無料トライアルをクリックしてください!

FirefoxとしてXNUMXつのウィンドウで複数のWord文書を閲覧する

推奨される単語生産性ツール

 

Word用のKutools - Word用の100以上の高度な機能で、50%の時間を節約

  • 複雑で繰り返される操作は、数秒でXNUMX回の処理で実行できます。
  • 複数の画像をフォルダ間でWord文書に一度に挿入します。
  • フォルダ間で複数のWordファイルをマージして、希望の順序でXNUMXつに結合します。
  • 見出し、セクション区切り、またはその他の基準に従って、現在のドキュメントを個別のドキュメントに分割します。
  • DocとDocx、DocxとPDFの間でファイルを変換し、一般的な変換と選択のためのツールのコレクションなど...
コメントを並べ替える
コメント (0)
まだ評価はありません。 最初に評価してください!
ここにはまだコメントが投稿されていません
あなたのコメントを残す
ゲストとして投稿
×
この投稿を評価:
0   文字
推奨される場所

フォローする

著作権©の2009 - WWW。extendoffice.com。 | | 全著作権所有。 搭載 ExtendOffice。 | サイトマップ
MicrosoftおよびOfficeのロゴは、米国MicrosoftCorporationの米国およびその他の国における商標または登録商標です。
SectigoSSLで保護