Sub CapitaliseKeyWords()
Dim AllMatches As Object
Dim itm As Variant
Dim Cell As Range
Dim lr As Long
Dim s As String
Const myCols As String = "G:I"
Application.ScreenUpdating = False
lr = Columns(myCols).Find(What:="*", After:=Columns(myCols).Cells(1), LookIn:=xlValues, SearchDirection:=xlPrevious).Row
With CreateObject("VBScript.RegExp")
.Global = True
.IgnoreCase = True
.Pattern = "\b(" & Join(Application.Transpose(Sheets("Words").Range("A1", Sheets("Words").Cells(Rows.Count, "A").End(xlUp)).Value), "|") & ")\b"
For Each Cell In Columns(myCols).Resize(lr).Cells
s = LCase(Cell.Value)
Set AllMatches = .Execute(s)
For Each itm In AllMatches
s = Left(s, itm.firstindex) & UCase(itm) & Mid(s, itm.firstindex + itm.Length + 1)
Next itm
Cell.Value = s
Next Cell
End With
Application.ScreenUpdating = True
End Sub