Greetings Dominic,
Not sure how much help I'd be at Word, but maybe use a template. It appears you are using text to find/replace like I used to in WordPerfect.
Anyways, with the template in the same folder as the workbook, try:
Option Explicit
Sub exa()
Dim WD As Object '<---Word.Application
Dim DOC As Object '<--- Word.Document
On Error Resume Next
Set WD = GetObject(, "Word.Application")
If Err.Number > 0 Then
Set WD = CreateObject("Word.Application")
End If
On Error GoTo 0
With WD
.Visible = True
Set DOC = .Documents.Add(Template:=ThisWorkbook.Path & "\MyTemplate.dot", _
NewTemplate:=False, DocumentType:=0)
With .Selection
.Find.ClearFormatting
.Find.Replacement.ClearFormatting
With .Find
.Text = "[REFNO]"
.Replacement.Text = Cells(9, 1).Text
.Forward = True
.Wrap = 1
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
.Find.Execute Replace:=2
.Find.Execute FindText:="[NAME]", ReplaceWith:=Cells(9, 2).Text, Replace:=2
.Find.Execute FindText:="[DOB]", ReplaceWith:=Cells(9, 3).Text, Replace:=2
.Find.Execute FindText:="[PPNO]", ReplaceWith:=Cells(9, 4).Text, Replace:=2
.Find.Execute FindText:="[DATE]", ReplaceWith:=Cells(9, 5).Text, Replace:=2
End With
End With
End Sub
Hope that helps,
Mark