Sub CommaAdd() ' Paul Beverley - Version 22.12.22 ' Adds a comma after the current word spanishPunct = False myTrack = ActiveDocument.TrackRevisions Selection.Expand wdWord Do While InStr(ChrW(8217) & "' ", Right(Selection.Text, 1)) > 0 Selection.MoveEnd , -1 DoEvents Loop Selection.Collapse wdCollapseEnd Set tst = Selection.Range.Duplicate tst.MoveEnd , 1 ' That's got the space Set tst2 = tst.Duplicate tst2.Collapse wdCollapseEnd tst2.MoveEnd , 1 ' That's got the next character ActiveDocument.TrackRevisions = False ' Check if italic is switching off word to word If tst2.Font.Italic = False Then tst.Font.Italic = False removeItalic = True Else removeItalic = False End If ' Check if bold is switching off word to word If tst2.Font.Bold = False Then tst.Font.Bold = False removeBold = True Else removeBold = False End If ActiveDocument.TrackRevisions = myTrack Selection.InsertAfter Text:="," ActiveDocument.TrackRevisions = False If spanishPunct = False And removeBold = True Then _ Selection.Font.Bold = False If spanishPunct = False And removeItalic = True Then _ Selection.Font.Italic = False ActiveDocument.TrackRevisions = myTrack Selection.MoveRight , 2 End Sub