
ابزار Mail Merge در ورد
وقتی میخوایم سندی رو با داده های متغیر و به تعداد زیاد تهیه کنیم یکی از بهترین راه ها استفاده از Mail Merge است. این ابزار در نرم افزار Word وجود داره که میتونه وصل بشه به اکسل و داده های متغیر رو فراخوانی کنه و سند مورد نظر رو تولید کنه. کارهایی مشابه موارد زیر رو میتونیم با استفاده از این ابزار انجام بدیم:
- صدور یک مدرک آموزشی برای صد نفر از شرکت کنندگان
- صدور کارنامه برای دانش آموزان یک مدرسه
- صدور فیش حقوقی
- صدور دعوتنامه، نامه و …
- صدور فاکتور برای مشتریان مجموعه و …
این مقاله طی ۲ بخش ارائه میشه:
- معرفی و نحوه استفاده از Mail Merge و ارتباطش با اکسل
- حل مشکل فرمت دهی داده ها در Word
بخش اول: معرفی و نحوه استفاده از Mail Merge و ارتباطش با اکسل
فرض کنید میخواهیم فاکتورهای مشتریانمون رو به آدرس های اونها پست کنیم. پاکت های نامه رو آماده کردیم و میخوایم برای هر مشتری یک لیبل که شامل اطلاعات گیرنده مثل اسم، آدرس و سایر اطلاعات هر مشتری هست آماده کنیم. برای تهیه و چاپ این لیبل (که بعدا بچسبونیم روی پاکت نامه) از این ابزار استفاده میکنیم و با چند کلیک همه لیبل های مورد نیاز صادر میشه. برای استفاده از این ابزار به چه چیزی نیاز داریم؟
- دیتابیس داده های متغیر ( در این مثال اسم، آدرس، تلفن و … – مشابه شکل ۱)
- تمپلیت سند مورد نظر در Word ( در این مثال فرمت خام پاکت برای قسمت گیرنده – مشابه شکل ۲)

شکل ۱ – Mail Merge نمونه دیتابیس از اطلاعات متغیر سند مورد نظر

شکل ۲ – Mail Merge- نمونه خام سند مورد نظر (در اینجا پاکت نامه)

در ادامه نحوه استفاده از این ابزار و صدور همه لیبل های مورد نظر رو شرح میدیم. بعد از آماده کردن دیتابیس داده های متغیر و تمپلیت سند مورد نظر، فایل تمپلیت لیبل مورد نظر رو باز میکنیم و از تب Mailings روی گزینه Start Mail Merge کلیک میکنیم. از منوی باز شده، روی گزینه Step-by-Step Mail Merge Wizard کلیک میکنیم.
شکل ۳- Mail Merge – انتخاب ویزارد

همچنین در نرم افزار ورد یک سری تمپلیت مثل نامه، ایمیل، برچسب و … وجود داره که ساختار مشخصی دارن و قابل استفاده هستن. اما ما در اینجا از تمپلیت خودمون استفاده کردیم که نشون بدیم هیچ محدودیتی برای فایل ورد وجود نداره و هر ساختاری میتونه داشته باشه. با زدن این گزینه ویزارد Mail Merge در سمت راست صفحه باز میشه و ۶ گام وجود داره که باید طی بشه. گام اول: انتخاب سند مورد نظر (در اینجا Letters رو انتخاب میکنیم که بتونیم هر ساختاری رو تعیین کنیم و Next رو میزنیم)
شکل ۴ – Mail Merge – ویزارد گام اول

گام دوم: در نوار نمایش داده شده از ما میخواد که تمپلیت نامه مورد نظر رو مشخص کنیم. چون ما از ابتدا فایل تمپلیت رو باز کردیم، گزینه Use the current document رو انتخاب میکنیم و Next رو میزنیم.
شکل ۵ – Mail Merge – ویزارد گام دوم

گام سوم: در این مرحله باید فایل داده های متغیر در نامه رو معرفی کنیم. روی Browse کلیک میکنیم و فایل اکسل دیتابیس رو انتخاب میکنیم. بعد از انتخاب فایل اکسل و انتخاب شیت مورد نظر از فایل، پنجره شکل ۶ نمایش داده میشه. OK رو میزنیم و به گام بعد میریم.
شکل ۶- Mail Merge- گام سوم، تعیین فایل داده های متغیر

در این قسمت میتونیم افرادی رو که نمیخوایم از تغییر فیلتر، مشخص کنیم، یا اینکه داده ها رو مرتب کنیم و تکراری ها رو حذف کنیم و … گام چهارم: در گام چهارم از پنجره نمایش داده شده باید داده های متغیر در متن نامه رو مشخص کنیم برای این کار روی گزینه More Items کلیک میکنیم.
شکل ۷-Mail Merge – گام چهارم تعیین داده های متغیر


از پنجره نمایش داده شده، باید متغیرها رو تعیین کنیم. برای این کار طبق زیر عمل میکنیم: ابتدا جلوب فیلد مورد نظر کلیک میکنیم و نشانگر موس رو در مکان مورد نظر (مثلا جلوی نام خانوادگی) قرار میدیم. بعد روی More Items کلیک میکنیم و از پنجره نمایش داده شده، فیلد مورد نظر (نام گیرنده) که باید جلوی نام خانوادگی قرار بگیره رو کلیک میکنیم. برای همه قسمت های لیبل همین کار رو مطابق ویدئو زیر تکرار میکنیم و Next رو میزنیم. گام پنجم: در این مرحله میتونیم لیبل های ایجاد شده رو ببینیم. برای این کار کافیه روی علامت >> بزنیم و لیبل های ایجاد شده رو ملاحظه کنیم.
شکل ۸- Mail Merge – گام پنجم بررسی نامه های ایجاد شده

گام ششم و آخر: در این مرحله میتونیم همه یا برخی از لیبل های ایجاد شده رو مشاهده کنیم. برای مشاهده لیبل ها روی گزینه Edit Individual letters کلیک میکنیم و از پنجره نمایش داده شده تعیین میکنیم که همه (All) لیبل ها رو ببینیم یا برخی از لیبل ها نمایش داده بشه.
شکل ۹ – Mail Merge – گام ششم مشاهده همخ لیبل های ایجاد شده
با زدن All یک فایل ورد ایجاد شده که در هر صفحه یک لیبل با اطلاعات مورد نظر ایجاد شده که میتونیم پرینت بگیریم.
بخش دوم: حل مشکل فرمت دهی داده ها در Word
مسئله ای که در مورد استفاده از mail merge مطرحه، اینه که داده هایی که در اکسل فرمت خاصی دارن، در سند ورد بدون فرمت منتقل میشن. مثلا اگر عددی جدا کننده سه رقم سه رقم داره، در ورد بدون این جداکننده دیده میشه. یا مثلا اگر عددی بصورت درصد نمایش داده میشه، با مقدار واقعی در سند ورد منتقل میشه. یعنی مقدار ۳۰% بصورت ۰.۳ نمایش داده میشه. پس هدف این هست که داده ها با فرمت موجود در اکسل، دقیقا به همان صورت در ورد هم نمایش داده بشن. به مثال زیر توجه کنید:

همونطور که در شکل ۹ مشخص شده است، هم ستون کد ملی و هم ستون مبلغ، هر دو فرمت سل دارن (فرمت جدا کننده سه رقم و فرمت مربوط به کد ملی) و زمانی که در فایل ورد فراخوانی شده اند، بدون فرمت انتقال داده شده اند. در حالیکه میخواهیم هم شماره ملی و هم مبلغ مورد نظر، با فرمت های نمایش داده شده در اکسل، در ورد نیز نمایش داده شوند. برای حل این مسئله میتونیم از طریق DDE (Dynamic Data Exchange) به فایل اکسل متصل بشیم.
روش اول: نحوه استفاده از Dynamic Data Exchange برای اتصال به شیت اکسل
قبل از اینکه فرایند Mail Merge رو شروع کنیم در نرم افزار Word این تنظیمات رو انجام میدیم:
- از مسیر File/ Options/ Advanced تیک گزینه زیر رو میزنیم: Confirm file format conversion on open


روش دوم: تغییر فرمت بخشی از فیلدها در فایل Word
ارتباط به یک فایل اکسل از طریق DDE سریع ترین راه برای حل این مشکل بشمار میره. اما اگر به هر دلیلی نتونستید از این روش استفاده کنید میتونید از یک سری کدنویسی (مشابه با کدنویسی فرمت سل) در قسمت Merge Field استفاده کنید. کدهای فرمت دهی Numeric switch نوعی کد هستند که میتونن بخشی از داده های یک سند ورد رو بصورت دلخواه تغییر بدن. برای این که بتونیم از این کدها استفاده کنیم طبق زیر عمل میکنیم:
- فیلد مورد نظر در میل مرج که باید فرمتش تغییر کنه (مثلا ستون Gift که میزان مبلغ رو نمایش میده) انتخاب میکنیم.
- کلید ترکیبی Shift+F9 یا Alt+F9 رو میزنیم تا کد مربوطه نمایش داده بشه. با این کار یک کد عمومی متناسب با فیلد انتخابی به صورت {MERGEFIELD name} نمایش داده میشه که Name نام فیلد انتخابی است. در اینجا کد بصورت {MERGEFIELD “Gift”} نمایش داده میشه.
- حالا کد مورد نظر رو تایپ میکنیم (در ادامه با مثال مشاهده میکنیم)
- بعد از وار کردن کد، F9 میزنیم که آپدیت بشه.
- در نهایت هم کلید ترکیبی Shift+F9 یا Alt+F9 رو میزنیم که کد پنهان بشه و ادامه مراحل Mail Merge رو انجام میدیم.

فرمت نامبر در Mail Merge
مثلا میخواهیم فیلد مبلغ جایزه رو بصورت جداکننده سه رقم سه رقم جدا کنیم. برای این کار، بعد از اینکه فیلد gift رو جلوی مبلغ قرار دادیم، عبارت «gift» رو انتخاب میکنیم و Shift F9 میزنیم، این عبارت به { MERGEFIELD “GIFT”} تبدیل میشه و حالا جلوی “GIFT” کد متناسب با جداکننده سه رقم رو اضافه میکنیم. یعنی:
{MERGEFIELD “GIFT” \#,0}
حالا F9 رو میزنیم و دوباره به “GIFT” تبدیل میشه و سپس بقیه مراحل Mail Merge رو ادامه میدیم.
{% 0 #\ 100*{MERGEFIELD Percent }= }

همینطور که برای اعداد میتونیم فرمت بدیم، برای تاریخ و زمان هم میتونیم فرمت بدیم و مثلا فرمت داده های از جنس تاریخ و زمان رو در فایل ورد مطابق با نظر خودمون اصلاح کنیم. برا یاین کار از کدهای زیر استفاده میکنیم:
فرمت نامبر در Mail Merge
نمایش صفر پشت عدد در Mail Merge برای انتقال داده هایی مثل شماره موبایل، کدملی و … که در ابتدا، صفر دارن، باید فرمت سلول ها رو تکست کنیم و صفر ها رو دستی وارد کرده باشیم. چون اگر از طریق custom format در اکسل و مثلا ۰۰۰۰۰ صفرها نمای شداده شده باشن، به ورد منتقل نمیشن. پس ابتدا فرمت سلول ها رو تکست میکنیم و صفرهای ابتدا رو دستی وارد میکنیم. در این مقاله با یک مثال کامل، نحوه استفاده از Mail Merge رو توضیح دادیم و یکی از مهمترین مشکلات که در مورد تغییر فرمت داده ها در مقصد بود رو با دو روش حل کردیم. با این توضیحات دیگه مشکلی برای استفاده از Mail Merge برای صدور اسنادی مثل قرارداد، فیش حقوقی و … وجود نداره. اما اگر باز هم مایل به استفاده از کد VBA برای این کار هستید، مقاله مربوط به صدور و پرینت فیش حقوقی رو مطالعه کنید و از کد آماده در اون مقاله استفاده کنید.





سلام خانم مهندس
من یک شیت اکسل حقوق دارم برای فروردین ویک فیش وردی هم با آموزش شمادرست کردم برای فروردین حالا برای اردیبهشت هم یک فایل اکسل دارم ودیگر نمی توانم با میل مرج فیش درست کنم لطفا راهنمایی برمایید ممنون می شوم
واین کار را باید هرماه درست کنم هر کاری می کنم خطا می دهد
ممنون می شوم مشکلمن را حل کنید
سلام
چرا نمیتونید؟!
کپی کنید فایل ورد رو دوباره ارتباطش رو با داد ههای اردیبهشت بسازید
سلام وبا تشکر از مطالب کاربری و آموزنده تان
چکار کنیم که بعد از آماده کردن نامه با این روش با گیرنده های متعدد و ارسال آن به رئیس ایشون بتواند با یکبار امضا همه نامه ها امضا بخورند و یا تغییری که ایشون میدهند به همه نامه ها اعمال شود؟
درود
هر تغییری بدید دوباره باید این پروسه رو طی کنید
امضا هم اگه عک باه، از اول روی اصل نامه قرار بدید به عنوان بخش ثابت نامه
با سلام ،
از آموزش ارایه شده شما تشکر میکنم.
سلام
چرا زمان انتقال نظم نوشتار بهم میخوره مثلاً تایپ کردیم A439863 داخل ورد ۴۳۹۸۶۳A نمایش میده یعنی بای اینکه از چپ به راست جایگذاری کنه از راست به چپ میچینه
سلام
right to left کردین مقصد رو؟