Word文書のテーブルから重複する行を削除するにはどうすればよいですか?
Word文書では、行が重複しているテーブルがいくつかあり、それらを削除して最初の外観を維持したい場合があります。 この場合、重複するものをXNUMXつずつ手動で削除することを選択できます。また、VBAコードを使用することも選択できます。
Wordのテーブルから重複する行を削除する
1.重複する行を削除するテーブルにカーソルを置き、を押します。 Altキー+ F11 を有効にするためのキー アプリケーション向け Microsoft Visual Basic 窓。
2。 クリック インセット > モジュール 新しいモジュールを作成します。
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
4。 押す F5 キーを押してコードを実行すると、重複するすべての行が削除されます。
注意:上記のコードでは大文字と小文字が区別されます。大文字と小文字が区別されない場合に重複する行を削除する場合は、以下のコードを使用できます。
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ワークブックを参照し、タブをクリックすることでそれらを簡単に切り替えることができます。 |
![]() |
推奨される単語生産性ツール
Word用のKutools - Word用の100以上の高度な機能で、50%の時間を節約
- 複雑で繰り返される操作は、数秒でXNUMX回の処理で実行できます。
- 複数の画像をフォルダ間でWord文書に一度に挿入します。
- フォルダ間で複数のWordファイルをマージして、希望の順序でXNUMXつに結合します。
- 見出し、セクション区切り、またはその他の基準に従って、現在のドキュメントを個別のドキュメントに分割します。
- DocとDocx、DocxとPDFの間でファイルを変換し、一般的な変換と選択のためのツールのコレクションなど...