ওয়ার্ড ছাড়া এক্সেলে মেইল মার্জ করার উপায় খুঁজছেন? তবে আপনি সঠিক জায়গায় আছেন। যদি কোনো কারণে Microsoft Word উপলব্ধ না থাকে, তবে মেইল মার্জ করা ট্রিকি হবে। কিন্তু এটি অসম্ভব নয়, কারণ মেইল মার্জ অপারেশনের জন্য Word বাধ্যতামূলক নয়। এই আর্টিকেলে, আমরা আপনাকে ২টি VBA Macros দেখাব Excel-এ Word ছাড়া মেইল মার্জ করার জন্য।
মেইল মার্জ
যখন কেউ বা কোনো কোম্পানি অনেক ইমেইল পাঠাতে চায় কিছু সামান্য পরিবর্তনসহ (যেমন নাম, প্রাপকের ইমেইল ঠিকানা, বা প্রাপকের ঠিকানা)। তখন, सम्बद्ध পক্ষ একটি টেমপ্লেট এবং এডিটেবল ফিল্ড তৈরি করে চাহিদা পূরণ করতে পারে। আমরা এই ধরনের টেমপ্লেটকে মেইল মার্জ হিসেবে জানি।
এটি সম্পূর্ণ টাইম সেভার। এই কাজটি সাধারণত একটি Word প্রসেসর (যেমন Microsoft Word, Google Docs, ইত্যাদি) দিয়ে করা হয়। WordStar এই ফিচারটি প্রথমে ৮০-এর দশকে অনবদ্য করল। তারপর অন্যদেরও এই সুপার ইউজফুল ফিচারটি আডোপ্ট করল।
সাধারণত, মেইল মার্জ অপারেশনের ৫টি মূল ধাপ রয়েছে:
- প্রথমে, original document।
- দ্বিতীয়, data source।
- তৃতীয়, ইনপুট করার fields।
- তারপর, original document-এর সাথে merging।
- শেষে, emails Save বা Send করা।
ওয়ার্ড ছাড়া এক্সেলেই মেইল মার্জ করার ২ হ্যান্ডি পদ্ধতি
Microsoft Word যেহেতু সবচেয়ে প্রমিনেন্ট Word প্রসেসর, তাই আমরা “mail merge” শব্দ শুনলে মाइক্রোসফট ওয়ার্ডের সাথে এসোসিয়েট করি। তবে, আমরা এটা আলাদা ভাবে করব, শুধু Microsoft Excel ব্যবহার করে মেইল মার্জ পারফর্ম করব। তাই এই আর্টিকেলটি ভালোভাবে পড়ুন এ সম্পর্কে গভীরে জানতে।
আরো, আমরা দুটি ডেটাসেট ব্যবহার করব আমাদের Macros দেখানোর জন্য, যেন থেকে প্রথম ডেটাসেটে নিচের কলামগুলো আছে: “Name”, “Email Address”, “City”, এবং “Street Address”। দ্বিতীয় ডেটাসেটটি আমরা এই আর্টিকেলের দ্বিতীয় মেথডে দেখব। এছাড়া, প্রাইভেসি রিজনে, আমরা আমাদের ডেটাসেটের জন্য ৩টি ইমেইল ঠিকানা তৈরি করেছি এবং শেষটিটি এই আর্টিকেল লেখকের, যেটি আমরা ব্যবহার করব যাচাই করতে যে আমরা কোনো সমস্যা ছাড়া ইমেইল পাঠাতে পারি।

১. এক্সেলে অটোমেটিক্যালি ইমেইল পাঠাতে মেইল মার্জ
প্রথম মেথডের জন্য, আমাদের Worksheet-র নাম “VBA1”। আমরা একটি Module ব্যবহার করে দুইটি Sub procedures সহ একটি VBA কোড ইনসার্ট করব Excel-এ Word ছাড়া মেইল মার্জ করার জন্য। তারপর, আমরা এই কোডটি রান করব, যা আমাদের প্রিডিফাইনড টেমপ্লেট ব্যবহার করে লিস্ট করা কাস্টমারদের স্বয়ংক্রিয়ভাবে ইমেইল পাঠাবে। সেই সব করার আগে, আপনাকে দেখাই কিভাবে Module উইন্ডো আনা যায় এবং VBA কোড টাইপ করতে হয়।

ধাপগুলো:
- প্রথমে, Developer ট্যাব থেকে >>> Visual Basic সিলেক্ট করুন।
- বিকল্পভাবে, আপনি ALT + F11 চাপুন VBA উইন্ডো দেখতে।

- দ্বিতীয়, Insert >>> Module সিলেক্ট করুন।

- সুতরাং, এটি Module উইন্ডো আনা করবে, যেখানে আমরা আমাদের VBA কোড টাইপ করব।
- এরপর, Module উইন্ডোর ভেতরে নিচের কোডটি টাইপ করুন।
Option Explicit Sub Mail_Merge_Only_Excel() Dim xSheet As Worksheet Dim mAddress As String, mSubject As String, eName As String, _ eLocation As String, eCity As String Dim eRow As Long, x As Long Set xSheet = ThisWorkbook.Sheets("VBA1") 'WorkSheet Name With xSheet eRow = .Cells(.Rows.Count, 5).End(xlUp).Row For x = 5 To eRow 'Specific Row to Row to Last Row mAddress = .Cells(x, 3) mSubject = "Thank You for Your Loyalty" eName = .Cells(x, 2) eCity = .Cells(x, 4) eLocation = .Cells(x, 5) Call Mail_Merge_Only_Excel_Send_Mail(mAddress, mSubject, _ eName, eLocation, eCity) Next x End With End Sub Sub Mail_Merge_Only_Excel_Send_Mail(mAddress As String, mSubject As String, _ eName As String, eLocation As String, eCity As String) Dim pApp As Object Dim pMail As Object Set pApp = CreateObject("Outlook.Application") Set pMail = pApp.CreateItem(0) With pMail .To = mAddress .CC = "" .BCC = "" .Subject = mSubject .Body = "Mr./Mrs. " & eName & vbNewLine & eCity & vbNewLine & eLocation & _ vbNewLine & vbNewLine & "Hello! " _ & "You are one of the most precious customers to us for the last quarter. " _ & "As a token of appreciation, we are sending you 20$ coupon code for your " _ & "next purchase at ExcelDemy. " _ & "Use the coupon code 'ExcelDemy20' to avail of this discount." _ & vbNewLine & "From," & vbNewLine & "ExcelDemy Team" .Send End With Set pMail = Nothing Set pApp = Nothing End Sub

VBA Code Breakdown
- প্রথমে, আমরা আমাদের প্রথম Sub procedure “Mail_Merge_Only_Excel”-কে কল করছি।
- দ্বিতীয়, আমরা ভেরিয়েবল টাইপ ডিক্লেয়ার করছি এবং “VBA1” সেট করছি আমাদের Worksheet- হিসেবে।
- তারপর, লাস্ট রো নম্বর বের করা হয়েছে। এছাড়া, আমাদের ভ্যালু রো ৫- থেকে শুরু, সুতরাং আমরা আমাদের কোডে রো ৫ থেকে লাস্ট রো রাখলাম।
- তারপর, আমাদের দ্বিতীয় Sub procedure “Mail_Merge_Only_Excel_Send_Mail”-কে কল করলাম।
- এপরে, আমরা Outlook সিলেক্ট করলাম আমাদের Mail Application- হিসেবে।
- তারপর, ইমেইল কন্টেন্ট আমাদের কোডে সেট করা হয়েছে। এছাড়া, আমরা vbNewLine ব্যবহার করছি ইমেইল বডিতে ব্ল্যাঙ্ক লাইন ইনসার্ট করার জন্য।
- এপরে, “.Send” এখানে ব্যবহার করা হয়েছে আমাদের ইমেইল পাঠাতে। সুতরাং, ইমেইল পাঠাতে আমাদের ম্যানুয়ালি Send চাপতে হবে না। এছাড়া, আমরা “.Display” ব্যবহার করতে পারি ইমেইল ডিসপ্লে করতে পাঠানো ছাড়া।
- এপরে, Module Save করুন।
- তারপর, প্রথম Sub procedure-র ভেতরে কার্সর রেখে Run চাপুন।
- এখন, আপনি যদি আপনার Outlook মেইল অ্যাপে লগ অন না থাকেন, তবে আপনাকে লগইন ক্রেডেনশিয়াল দিতে বলা হবে। আমরা ইতিমধ্যে লগইন করা থাকায়, আমাদের মেইল অডিশনাল স্টেপ ছাড়া পাঠানো হবে।

- শেষে, এই স্ন্যাপশট দেখাচ্ছে মেইল মার্জ উদ্দেশ্য অনুযায়ী কাজ করছে এবং এটি Excel ব্যবহার করে Word ছাড়া কাজ করতে পারে।

আরও পড়ুন: এক্সেল থেকে আউटलুকে মেইল মার্জ করা (সহজ ধাপে)
২. এক্সেলে সিলেকশন থেকে ওয়ার্ড ছাড়া মেইল মার্জ
শেষ মেথডের জন্য, আমরা আমাদের ডেটাসেট কিছুটা পরিবর্তন করেছি। তিনটি কলাম আছে যারা “Name”, “Email Address”, এবং “Text” নিয়ে গঠিত। আমরা আরেকটি VBA কোড ব্যবহার করব Excel-এ শুধু মেইল মার্জ পারফর্ম করার জন্য। এইবার, আমরা ইমেইল ঠিকানা এবং পাঠাতে হবে টেক্সট সিলেক্ট করতে InputBox method ব্যবহার করব। আরো, আমরা শুধু মেইল মার্জ অপারেশন Outlook Application-এ ডিসপ্লে করব এবং ম্যানুয়ালি বাটনে ক্লিক করে পাঠাব। আমাদের ইমেইল বডি সব কাস্টমারের জন্য একই। আর কথা বাড়াব না, ধাপগুলোতে যাই।

ধাপগুলো:
- প্রথমে, প্রথম মেথডে দেখানোanusar, Module উইন্ডো আনা করুন এবং এই কোডটি টাইপ করুন।
Public Sub Mail_Merge_Without_Word_Input_Box() 'Declare the variables Dim XRcptsEmail As Range Dim xMailContent As Range Dim xRngDn As Range Dim xCrtOut As Object Dim xValSendRng As String Dim k As Long Dim xMailSections As Object Dim xFinalRw As Long Dim CrVbLf As String Dim xMsg As String On Error Resume Next 'Insert a input box for selecting the recipients Set XRcptsEmail = Application.InputBox("Choose the column for the email" _ & "addresses of the recipients:", "ExcelDemy", , , , , , 8) If XRcptsEmail Is Nothing Then Exit Sub 'To enter the text mail, insert a input box Set xMailContent = Application.InputBox("In your email," _ & "choose the column with the text:", "ExcelDemy", , , , , , 8) If xMailContent Is Nothing Then Exit Sub 'Count rows for the recipient email xFinalRw = XRcptsEmail.Rows.Count Set XRcptsEmail = XRcptsEmail(1) Set xMailContent = xMailContent(1) 'Set command to open MS Outlook Application Set xCrtOut = CreateObject("Outlook.Application") 'Apply For loop to conduct the operation in each row one by one For k = 1 To xFinalRw xValSendRng = Cells(XRcptsEmail.Offset(k - 1).Row, _ XRcptsEmail.Offset(k - 1).Column - 1) 'Create the subject, body and text contents with the required variables CrVbLf = "
" xMsg = "" xMsg = xMsg & "Dear " & xValSendRng & CrVbLf xMsg = xMsg & "" & xMailContent.Value & CrVbLf xMsg = xMsg & "" 'Create the email Set xMailSections = xCrtOut.CreateItem(0) 'Define the position to place the Subject, Body and Recipients Address With xMailSections .Subject = "Congratulations!!!" xValSendRng = Cells(XRcptsEmail.Offset(k - 1).Row, _ XRcptsEmail.Offset(k - 1).Column) .To = xValSendRng .HTMLBody = xMsg .Display End With Set xMailSections = Nothing Next Set xCrtOut = Nothing End Sub

VBA Code Breakdown
- শুরুতে, আমরা Sub procedure Mail_Merge_Without_Word_Input_Box-কে কল করছি।
- দ্বিতীয়, আমরা ভেরিয়েবল টাইপ ডিক্লেয়ার করছি।
- এপরে, আমরা দুটি InputBox ব্যবহার করছি ইমেইল ঠিকানা এবং ইমেইল বডি কন্টেন্ট পাওয়ার জন্য।
- তারপর, আমরা রো নম্বর কাউন্ট করছি।
- এরপর, আমরা একটি For Next Loop ব্যবহার করছি সকল সারি অনুক্রমে ঘুরে বের করার জন্য এবং VBA Offset property ব্যবহার করে কাস্টমার নাম এক্সট্র্যাক্ট করছি ১ কলাম বাম থেকে।
- শেষে, আমরা ইমেইল প্রিভিউ করার জন্য Display method ব্যবহার করছি। বিকল্পভাবে, আমরা ইমেইল পাঠাতেও পারি Send method ব্যবহার করে।
- এপরে, Module Save করুন।
- তারপর, প্রথম Sub procedure-র ভেতরে কার্সর রেখে Run চাপুন।

- সুতরাং, আমাদের কোড এক্সিকিউট হবে এবং আমাদের ইমেইল ঠিকানা এবং ইমেইল কন্টেন্ট সিলেক্ট করতে বলবে।
- এরপর, সেল রেঞ্জ C5:C8 ইমেইল ঠিকানা হিসেবে সিলেক্ট করুন এবং OK চাপুন।

- এপরে, ইমেইল কন্টেন্ট সিলেক্ট করুন যা সেল D5-এ আছে এবং OK চাপুন।

- এপরে, এটি আমাদের ৪টি Outlook Application উইন্ডো দেখাবে।

- শেষে, আমরা Send চাপুন এই ইমেইল ফরওয়ার্ড করার জন্য।

- এটি হলো এই VBA কোড ব্যবহার করে সফল মেইল মার্জ আউটপুটের স্বরূপ।

আরও পড়ুন: অ্যাটাচমেন্টসহ এক্সেল থেকে আউटलুকে মেইল মার্জ করা (২ উদাহরণ)
প্র্যাকটিস সেকশন
আমরা প্রতিটি মেথডের জন্য প্র্যাকটিস ডেটাসেট Excel ফাইলে যোগ করেছি। তাই আপনি সহজে আমাদের মেথডগুলো অনুসরণ করতে পারবেন।

উপসংহার
আমরা আপনাকে ২টি VBA Macros দেখিয়েছি Excel-এ Word ছাড়া মেইল মার্জ করার। এই মেথডগুলোর সম্পর্কে আপনার কোনো সমস্যা থাকলে বা আমার জন্য যেকোনো ফিডব্যাক থাকলে নিচে কমেন্ট করুন। আরো, আরও এক্সেল-সম্পর্কিত আর্টিকেলের জন্য আমাদের সাইট ExcelDemy ভিজিট করতে পারেন। পড়ার জন্য ধন্যবাদ, এগিয়ে যান!
সম্পর্কিত আর্টিকেল
- এক্সেল থেকে মেইল মার্জ ডকুমেন্ট পপুলেট করার ম্যাক্রো
- এক্সেল মেইল মার্জে ডেট ফরম্যাট পরিবর্তন করা (দ্রুত ধাপে)
- এক্সেল ফাইলকে মেইলিং লেবেলে মার্জ করা (সহজ ধাপে)
- এক্সেল থেকে ওয়ার্ড এনভেলোপে মেইল মার্জ (২ সহজ পদ্ধতি)
- এক্সেল থেকে ওয়ার্ডে পিকচার মেইল মার্জ করা (২ সহজ পদ্ধতি)