Sub SILConvert() FixFont = "SILManuscript IPA93" NormalFont = "Times New Roman" Dim code As Integer, code2 As Long Dim oTable As Table, oCell As Cell, oRow As Row, oChar As Range Selection.Find.ClearFormatting Selection.Find.Font.Name = FixFont With Selection.Find .Text = "^?" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Do Selection.Find.Execute If Selection.Find.Found = True Then code = Asc(Selection.Text) code2 = AscW(Selection.Text) If code2 > 0 Then ' tabs and newlines don't format properly whether left alone or converted, so we change them to another font ' otherwise, add 61440 (0xF000) to get the proper Unicode Private Use Area codepoint If code = 9 Or code = 10 Or code = 13 Then Selection.Font.Name = NormalFont Else Selection.TypeText Text:=ChrW(code + 61440) End If End If Else Exit Do End If Loop For Each oTable In ActiveDocument.Tables 'fix end-of-cell characters Set oCell = oTable.Range.Cells(1) For Counter = 1 To oTable.Range.Cells.Count Set oChar = oCell.Range.FormattedText.Characters.Last If oChar.Font.Name = FixFont Then oChar.Font.Name = NormalFont End If Set oCell = oCell.Next Next Counter 'fix end-of-row characters Set oRow = oTable.Range.Rows(1) For Counter = 1 To oTable.Range.Rows.Count Set oChar = oRow.Range.FormattedText.Characters.Last If oChar.Font.Name = FixFont Then oChar.Font.Name = NormalFont End If Set oRow = oRow.Next Next Counter Next oTable End Sub