In one of the Office Answer forums, I addressed a question about replacing text with a symbol. It seems that in some case you must also change the font name of the text found. I used a User Defined Type in the following code. Just wondering if anyone else has a better idea or method:
Option Explicit Private Type CCFN 'User defined type for getting symbol character number and font name. ChrCode As Long FontName As String End Type Sub FRWordWithSymbols() 'Finds/replaces words defined in a table column 1 (headed Text) with symbols defined in column 2 (headed Symbol) Dim oTbl As Table Dim oRng As Range Dim lngIndex As Long Dim SymData As CCFN Set oTbl = ActiveDocument.Tables(1) For lngIndex = 2 To oTbl.Rows.Count Set oRng = ActiveDocument.Range 'Move range passed the table. oRng.Start = oTbl.Range.End With oRng.Find 'Get the defined word/phrase and strip off end of cell mark. .Text = Left(oTbl.Rows(lngIndex).Cells(1).Range, Len(oTbl.Rows(lngIndex).Cells(1).Range) - 2) 'Get the symbol data (character number and font name) SymData = fcnCCFN(oTbl.Rows(lngIndex).Cells(2).Range.Characters(1)) While .Execute 'If found, replace found text with character code of the symbol and apply font name. oRng.Text = Chr(SymData.ChrCode) oRng.Font.Name = SymData.FontName oRng.Collapse wdCollapseEnd Wend End With Next lngIndex lbl_Exit: Exit Sub End Sub Function fcnCCFN(oRng As Range) As CCFN fcnCCFN.FontName = oRng.Font.Name oRng.Font.Name = "Normal" fcnCCFN.ChrCode = AscW(oRng.Text) oRng.Font.Name = fcnCCFN.FontName lbl_Exit: Exit Function End Function


Reply With Quote
