Hi, I would like to tidy up this code.
1. After each sentence the code runs to remove punctuation and replace with a semi-colon. It doesn't seem to work unless I put the .Text = ".^p" bit of the code to remove periods first though. Is there a better way to do this?
2. The code needs to remove punctuation before a square bracket at the end of sentences only. I have put the code in as .Text = ".]^p" etc. which removes punctuation, what I need is for the code that inserts the semi-colon, to search for square brackets and insert the semi-colon before the square bracket not after it.
I'm really not sure how to make this happen, can anyone help please.
Code:
'Remove period from end of sentence
Set orng = ActiveDocument.Range
With orng.Find
.Text = ".^p"
.Replacement.Text = "^p"
.Execute Replace:=wdReplaceAll
End With
'Remove period before square bracket at end of sentence
Set orng = ActiveDocument.Range
With orng.Find
.Text = ".]^p"
.Replacement.Text = "]^p"
.Execute Replace:=wdReplaceAll
End With
'Insert semi-colon at end of sentences but not for and, but, or, then
Set orng = ActiveDocument.Range
For Each Para In ActiveDocument.Paragraphs
With Para.Range
If Len(.Text) > 2 Then
If Not .Characters.Last.Previous Like "[.!?:;]" Then
Select Case .Words.Last.Previous.Words(1)
Case "and", "but", "or", "then"
'do nothing
Case Else
.Characters.Last.InsertBefore ";"
End Select
End If
End If
End With