Szerintem ez a végleges megoldás, aminél már csak szebbet lehet készíteni.
Így néz ki az Excel

Ez benne a makró:
Sub korlevel()
Dim wordnev(3) As String
wordnev(1) = "korlevel-1.docm"
wordnev(2) = "korlevel-2.docm"
wordnev(3) = "korlevel-3.docm"
utvonal = ActiveWorkbook.Path
utvonal = utvonal & "\"
adatok = ActiveWorkbook.FullName
For i = 1 To 3
strfilename = utvonal & wordnev(i)
strFileExists = Dir(strfilename)
If strFileExists = "" Then
MsgBox "Nem található a " & strfilename
hiba = True
End If
Next i
If hiba Then Exit Sub
For i = 1 To 3
Set wordapp = CreateObject("Word.Application")
wordapp.Visible = True
Set worddoc = wordapp.Documents.Open(utvonal & wordnev(i))
'wordapp.Activate
With worddoc
.MailMerge.OpenDataSource (adatok), Connection:="Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;" & _
"Data Source=StrMMSrc;Mode=Read;Extended Properties=""HDR=YES;IMEX=1"";", _
SQLStatement:="SELECT * FROM `Munka1$`", SubType:=wdMergeSubTypeAccess
.MailMerge.HighlightMergeFields = True
.MailMerge.ViewMailMergeFieldCodes = False
.MailMerge.DataSource.ActiveRecord = wdLastDataSourceRecord
End With
wordapp.Run "korlevel_befejez"
Set worddoc = Nothing
Set wordapp = Nothing
DoEvents
Next i
MsgBox ("Kész!")
End Sub
Ez a Word docm

Benne a makró:
Sub korlevel_befejez()
'
ez_a_doc = ActiveDocument.FullName
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = 1
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
Documents(ez_a_doc).Close SaveChanges:=wdDoNotSaveChanges
End Sub
A három körlevél létrehozásakor mindegyikbe ez a makró kerül.
Adatforrásnak az Excel fájlt kell megadni.
Beszúrni a megfelelő mezőket.
A piros nyíllal jelölt helyre a következőt:


"Mezőnév" az aktuális dokumentumhoz tartozó (Excel) oszlop, ami alapján szűrünk.
Remélem érthetően írtam. Ha kell közzéteszem a mintáimat.