Pessoal, encontrie uma macro que localizar e destaca parágrafo igual no Word. Gostaria de saber se é possível localizar e destacar trechos semelhantes/ou iguais no Word, sem ser o parágrafo inteiro.
Atualmente, a macro que tenho que destaca o PARÁGRAFO é essa:
Sub highlightdup()
Dim I, J As Long
Dim xRngFind, xRng As Range
Dim xStrFind, xStr As String
Options.DefaultHighlightColorIndex = wdYellow
Application.ScreenUpdating = False
With ActiveDocument
For I = 1 To .Paragraphs.Count - 1
Set xRngFind = .Paragraphs(I).Range
If xRngFind.HighlightColorIndex <> wdYellow Then
For J = I + 1 To .Paragraphs.Count
Set xRng = .Paragraphs(J).Range
If xRngFind.Text = xRng.Text Then
xRngFind.HighlightColorIndex = wdBrightGreen
xRng.HighlightColorIndex = wdYellow
End If
Next
End If
Next
End With
End Sub
Poderiam me ajudar? Ainda que seja encontrar "trechos" iguais (duas a cinco palavras sequênciais) já ajuda muito.
Abraço!
Olá, talvez eu consiga te ajudar. Para localizar e destacar trechos semelhantes ou iguais no Word, você pode fazer algumas modificações na sua macro atual. Aqui está uma versão modificada para atender ao seu requisito de encontrar trechos iguais (duas a cinco palavras sequenciais):
Sub highlightdups()
Dim i, j, k As Long
Dim xRngFind, xRng As Range
Dim xStrFind, xStr As String
Dim wordCount As Integer
Options.DefaultHighlightColorIndex = wdYellow
Application.ScreenUpdating = False
With ActiveDocument
For i = 1 To .Paragraphs.Count - 1
Set xRngFind = .Paragraphs(i).Range
If xRngFind.HighlightColorIndex <> wdYellow Then
wordCount = 0
Do While wordCount < 5 ' Altere para o número desejado de palavras sequenciais
xStrFind = xRngFind.Words(wordCount + 1)
For j = i + 1 To .Paragraphs.Count
Set xRng = .Paragraphs(j).Range
xStr = xRng.Words(1)
If xStrFind = xStr Then
For k = 1 To wordCount
If xRngFind.Words(k).Text <> xRng.Words(k).Text Then
Exit For
End If
Next k
If k = wordCount + 1 Then
xRngFind.HighlightColorIndex = wdBrightGreen
xRng.HighlightColorIndex = wdYellow
End If
End If
Next j
wordCount = wordCount + 1
Loop
End If
Next i
End With
Application.ScreenUpdating = True
End Sub
Essa versão da macro adiciona um loop interno para percorrer até 5 palavras sequenciais (ou o número desejado) ao comparar trechos de texto. Certifique-se de ajustar o valor de wordCount
conforme necessário. Isso deve ajudar a encontrar e destacar trechos semelhantes no Word.
Olá, Natalia, espero conseguir te ajudar nessa...
Tente adaptar está modificação do código para trabalhar com trechos menores, como palavras ou partes de parágrafos.
Sub HighlightDupWords()
Dim i, j As Long
Dim xRngFind, xRng As Range
Dim xStrFind, xStr As String
Options.DefaultHighlightColorIndex = wdYellow
Application.ScreenUpdating = False
With ActiveDocument
For i = 1 To .Words.Count - 1
Set xRngFind = .Words(i)
If xRngFind.HighlightColorIndex <> wdYellow Then
For j = i + 1 To .Words.Count
Set xRng = .Words(j)
If xRngFind.Text = xRng.Text Then
xRngFind.HighlightColorIndex = wdBrightGreen
xRng.HighlightColorIndex = wdYellow
End If
Next j
End If
Next i
End With
End Sub
Espero que esse código sirva para você. Abraços...