Sub SplitMailMergeToFiles()
Dim mainDoc As Document
Dim singleDoc As Document
Dim dataSrc As MailMergeDataSource
Dim i As Long
Dim savePath As String
Dim fileName As String
Dim fieldValue As String
' تنظیم مسیر ذخیره فایلها
savePath = "C:\Users\Public\Documents\" ' مسیر دلخواه خود را بگذارید
If Right(savePath, 1) "\" Then savePath = savePath "\"
Set mainDoc = ActiveDocument
Set dataSrc = mainDoc.MailMerge.DataSource
' حلقه روی همه رکوردها
For i = 1 To dataSrc.RecordCount
dataSrc.ActiveRecord = i
' استخراج مقدار از ستون خاص (مثلاً "Name")
On Error Resume Next
fieldValue = dataSrc.DataFields("name").Value ' ستون اکسل خودتان را اینجا بنویسید
If Err.Number 0 Then
fieldValue = "Record_" i
Err.Clear
End If
On Error GoTo 0
' اجرای Merge برای فقط رکورد فعال
mainDoc.MailMerge.Destination = wdSendToNewDocument
mainDoc.MailMerge.DataSource.FirstRecord = i
mainDoc.MailMerge.DataSource.LastRecord = i
mainDoc.MailMerge.Execute Pause:=False
' ذخیره فایل ایجاد شده
Set singleDoc = ActiveDocument
fileName = savePath "list_" fieldValue ".docx"
singleDoc.SaveAs2 fileName:=fileName, FileFormat:=wdFormatXMLDocument
singleDoc.Close SaveChanges:=False
Next i
MsgBox "تمام فایلها با موفقیت جداگانه ذخیره شدند!", vbInformation
End Sub