Hi this is my first time posting to this forum so hope I'm doing this correctly. I have a macro that highlights where punctuation is missing at the end of paragraphs:
1. It doesn't work if the paragraph ends in a cross reference field.
2. If sublevel paragraphs end with a comma before "and", "but", "or", "then" to also be highlighted pink BUT the sublevels end with a semi-colon before "and", "but", "or", "then" then these paragraphs should not be highlighted as the correct punctuation is in place.
Can anyone please help me fine tune the code below. Much appreciated.
Sub DPU_HighlightMissingPunctuation()Application.ScreenUpdating = False Dim Para As Paragraph, oRng As Range Set oRng = ActiveDocument.Range With oRng.Find .Text = "([!^13.,:;\?\-\!]^13)" 'Looks for missing punctuation at end of paragraphs .Font.Bold = False .Replacement.Highlight = wdPink 'and highlight last character as pink .Execute Replace:=wdReplaceAll 'BUT DOESN'T WORK IF LAST CHARACTER IS A FIELD End With On Error Resume Next For Each Para In ActiveDocument.Paragraphs With Para.Range If Len(.Text) > 2 Then If Not .Characters.Last.Previous Like "[.!?:;]" Then 'if para ends with punctuation do not highlight Select Case .Words.Last.Previous.Words(1) Case "and", "but", "or", "then" 'if para ends with these words and have semi-colon before them do nothing no highlight else .HighlightColorIndex = wdNoHighlight 'do nothing Case Else Case "and", "but", "or", "then" 'if para ends with these words and have a comma before them highlight pink .Characters.Last.InsertBefore "," .HighlightColorIndex = wdPink End Select End If End If End With Next Application.ScreenUpdating = True End Sub