If you construct your table as:
| However |
Hwv. |
| <As well as> |
Awa. |
| Expression |
Xprss. |
you could use a macro like:
Sub ReplaceFromTableList()
Application.ScreenUpdating = False
Dim Doc As Document, Rng As Range, i As Long, Tbl As Table
Dim sFname As String, StrFnd As String, StrRep As String
sFname = "C:\Users\Win7\Desktop\macro.docx" 'The table document
Set Rng = ActiveDocument.Range
Set Doc = Documents.Open(FileName:=sFname, Visible:=False)
Set Tbl = Doc.Tables(1)
With Rng.Find
.ClearFormatting
.Replacement.ClearFormatting
.MatchWildcards = True
.Wrap = wdFindContinue
For i = 1 To Tbl.Rows.Count
StrFnd = Split(Tbl.Cell(i, 1).Range.Text, vbCr)(0)
StrRep = Split(Tbl.Cell(i, 2).Range.Text, vbCr)(0)
.Text = StrFnd
.Replacement.Text = StrRep
.Execute Replace:=wdReplaceAll
.Text = LCase(StrFnd)
.Replacement.Text = LCase(StrRep)
.Execute Replace:=wdReplaceAll
Next i
End With
Doc.Close wdDoNotSaveChanges
Application.ScreenUpdating = True
End Sub
The above code doesn't do anything regarding the text formatting. If you want to modify the font attributes, you could use code like:
Sub ReplaceFromTableList()
Application.ScreenUpdating = False
Dim Doc As Document, Rng As Range, i As Long, Tbl As Table
Dim sFname As String, StrFnd As String, StrRep As String
sFname = "C:\Users\Win7\Desktop\macro.docx" 'The table document
Set Rng = ActiveDocument.Range
Set Doc = Documents.Open(FileName:=sFname, Visible:=False)
Set Tbl = Doc.Tables(1)
With Rng.Find
.ClearFormatting
.Replacement.ClearFormatting
.MatchWildcards = True
.Wrap = wdFindContinue
For i = 1 To Tbl.Rows.Count
StrFnd = Split(Tbl.Cell(i, 1).Range.Text, vbCr)(0)
StrRep = Split(Tbl.Cell(i, 2).Range.Text, vbCr)(0)
Set FntFnd = Tbl.Cell(i, 1).Range.Characters(1).Font
Set FntRep = Tbl.Cell(i, 2).Range.Characters(1).Font
.Text = StrFnd
.Font.Bold = FntFnd.Bold
.Replacement.Font.Bold = FntRep.Bold
.Font.Italic = FntFnd.Italic
.Replacement.Font.Italic = FntRep.Italic
.Font.Underline = FntFnd.Underline
.Replacement.Font.Underline = FntRep.Underline
.Replacement.Text = StrRep
.Execute Replace:=wdReplaceAll
.Text = LCase(StrFnd)
.Replacement.Text = LCase(StrRep)
.Execute Replace:=wdReplaceAll
Next i
End With
Doc.Close wdDoNotSaveChanges
Application.ScreenUpdating = True
End Sub
The above shows how you could limit the Find the particular font attributes and apply particular font attributes to the replacement. You can, of course, use either without the other.