Sub CommaAdd() ' Paul Beverley - Version 13.05.24 ' Adds a comma after the current word spanishPunct = False myTrack = ActiveDocument.TrackRevisions Set rng = Selection.Range.Duplicate rng.Expand wdWord Do While InStr(ChrW(8217) & "' ", Right(rng.Text, 1)) > 0 rng.MoveEnd , -1 DoEvents Loop Selection.Collapse wdCollapseEnd Set tst = rng.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 ' 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 rng.Collapse wdCollapseEnd rng.Select 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