Computer >> कंप्यूटर ट्यूटोरियल >  >> सॉफ्टवेयर >> Office

एक्सेल ईमेल जेनरेटर:वीबीए का उपयोग करके वैयक्तिकृत आउटलुक ईमेल को स्वचालित करें

एक्सेल ईमेल जेनरेटर:वीबीए का उपयोग करके वैयक्तिकृत आउटलुक ईमेल को स्वचालित करें

  <पी> एक समय में 5 से 10 लोगों को ईमेल करना आमतौर पर प्रबंधनीय होता है। 30, 50, या 500 लोगों को थोड़े भिन्न नामों, तिथियों, प्रस्तावों, अनुस्मारक, या अनुवर्ती नोट्स के साथ ईमेल करने से प्रक्रिया धीमी और त्रुटि-प्रवण हो जाती है। यहीं पर एक्सेल और वीबीए एक शक्तिशाली संयोजन बन जाते हैं। एक अच्छी तरह से संरचित वर्कशीट और वीबीए कोड के साथ, आप स्प्रेडशीट पंक्तियों को व्यक्तिगत आउटलुक ईमेल में बदल सकते हैं, कस्टम विषय पंक्तियों, मुख्य पाठ और वैकल्पिक अनुलग्नकों के साथ।

<पी> इस ट्यूटोरियल में, हम दिखाएंगे कि स्प्रेडशीट पंक्तियों से वैयक्तिकृत आउटलुक संदेश बनाने के लिए वीबीए का उपयोग करके एक्सेल ईमेल जेनरेटर कैसे बनाया जाए। लक्ष्य प्रत्येक पंक्ति में संग्रहीत डेटा के आधार पर वैयक्तिकृत आउटलुक ईमेल को स्वचालित करना है।

चरण 1:अपनी एक्सेल स्प्रेडशीट सेट करना

<पी> अपने डेटा की संरचना करें ताकि VBA इसे आसानी से पढ़ सके। हम निम्नलिखित कॉलमों के साथ "डेटा" नामक एक सरल वर्कशीट मानेंगे, जो पंक्ति 2 से शुरू होगी और हेडर के लिए पंक्ति 1 का उपयोग करेगी:

<पी> इस तरह एक वर्कशीट बनाएं:

<पी> एक्सेल ईमेल जेनरेटर:वीबीए का उपयोग करके वैयक्तिकृत आउटलुक ईमेल को स्वचालित करें

<पी> इन कॉलमों को आपके उपयोग के मामले में समायोजित किया जा सकता है, लेकिन शीर्षकों को स्पष्ट और सुसंगत रखें।

चरण 2:अपना ईमेल टेम्पलेट डिज़ाइन करना

<पी> कोई भी वीबीए कोड लिखने से पहले, तय करें कि ईमेल कैसा दिखना चाहिए।

<पी> यहां एक सरल ऑर्डर पुष्टिकरण टेम्पलेट है:

 <पी> विषय टेम्पलेट:  
Your Order Confirmation - #{OrderID}
<पी> बॉडी टेम्पलेट:
<p>Dear {Name},</p>
<p>Thank you for your recent purchase!</p>
<p>We are happy to confirm your order details:</p>
<ul>
<li><strong>Order ID:</strong> {OrderID}</li>
<li><strong>Total Amount:</strong> {Amount}</li>
</ul>
<p>Your order is now being processed and should ship within 2–3 business days.</p>
<p>If you have any questions, feel free to reply to this email.</p>
<p>Best regards,<br>
Shamima<br>
Customer Support Team<br>
Your Company Name<br>
Phone: +880-XXX-XXXXXXX</p>
  • ब्रेसिज़ में प्लेसहोल्डर प्रत्येक एक्सेल पंक्ति से निकाले गए मान हैं।
  • VBA में, आप उन प्लेसहोल्डर्स को वास्तविक सेल मानों से बदल देंगे।
<पी> यदि आपका टेम्प्लेट जटिल है, तो आप इसे एक अलग वर्कशीट में संग्रहीत कर सकते हैं या किसी फ़ाइल से पढ़ सकते हैं। सरलता के लिए, हम इसे एक सेल में संग्रहित करेंगे।

<पी> एक्सेल ईमेल जेनरेटर:वीबीए का उपयोग करके वैयक्तिकृत आउटलुक ईमेल को स्वचालित करें

चरण 3:आउटलुक संदर्भ को समझना

<पी> कोई भी कोड लिखने से पहले, यह समझने में मदद मिलती है कि एक्सेल आउटलुक की ऑब्जेक्ट लाइब्रेरी से कैसे जुड़ सकता है।

  • VBA संपादक खोलें.
  • डेवलपर के पास जाएं टैब>> विजुअल बेसिक चुनें या Alt + F11 दबाएँ .
  • टूल्स पर जाएं मेनू>> संदर्भ चुनें .
  • नीचे स्क्रॉल करें और “Microsoft Outlook XX.X ऑब्जेक्ट लाइब्रेरी” जांचें यदि आप अर्ली बाइंडिंग और आउटलुक-विशिष्ट ऑब्जेक्ट प्रकारों का उपयोग करना चाहते हैं।
  • ठीक क्लिक करें .
<पी> एक्सेल ईमेल जेनरेटर:वीबीए का उपयोग करके वैयक्तिकृत आउटलुक ईमेल को स्वचालित करें

<पी> यह संदर्भ वीबीए को मेल आइटम, अटैचमेंट और फ़ोल्डर्स सहित आउटलुक के पूर्ण ऑब्जेक्ट मॉडल तक पहुंच प्रदान करता है। हालाँकि, इस ट्यूटोरियल में कोड उदाहरण लेट बाइंडिंग का उपयोग करते हैं CreateObject(“Outlook.Application”) के साथ , इसलिए यहां दिखाए गए कोड के लिए आउटलुक संदर्भ सेट करना वैकल्पिक है।

<पी> सुरक्षा नोट: ईमेल को स्वचालित करने से आउटलुक सुरक्षा संकेत ट्रिगर हो सकते हैं। कई परिवेशों में, यह व्यवहार आउटलुक सुरक्षा सेटिंग्स और संगठनात्मक नीतियों पर निर्भर करता है। वास्तविक प्राप्तकर्ताओं के साथ उपयोग करने से पहले हमेशा अपने मैक्रो का सुरक्षित वातावरण में परीक्षण करें।

चरण 4:वैयक्तिकृत आउटलुक ईमेल जेनरेट करने के लिए VBA कोड लिखना

  • डेवलपर के पास जाएं टैब>> विजुअल बेसिक चुनें .
  • सम्मिलित करें पर जाएं मेनू>> मॉड्यूल चुनें .
  • अपना VBA कोड नए मॉड्यूल में पेस्ट करें।
  • यह स्क्रिप्ट पंक्तियों के माध्यम से लूप करती है और आउटलुक के माध्यम से ईमेल बनाती है।
<पी> वीबीए कोड:
Sub SendPersonalizedEmails()
 Dim OutlookApp As Object
 Dim OutlookMail As Object
 Dim ws As Worksheet
 Dim lastRow As Long
 Dim i As Long
 Dim subject As String
 Dim body As String
 Dim recipient As String
 Dim customerName As String
 Dim orderID As String
 Dim amount As String
 
 On Error GoTo ErrorHandler
 Set OutlookApp = CreateObject("Outlook.Application")
 Set ws = ThisWorkbook.Sheets("Data") ' Change sheet name if different
 
 ' Find last row (based on column A - Email)
 lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
 
 For i = 2 To lastRow
 recipient = Trim(ws.Cells(i, 1).Value) ' Email
 customerName = Trim(ws.Cells(i, 2).Value) ' Name
 subject = Trim(ws.Cells(i, 3).Value) ' Subject
 orderID = Trim(ws.Cells(i, 4).Value) ' OrderID
 amount = Trim(ws.Cells(i, 5).Value) ' Amount
 
 ' Skip row if no valid email
 If recipient = "" Or InStr(recipient, "@") = 0 Then GoTo NextRow
 
 ' Personalize subject
 subject = Replace(subject, "#{OrderID}", orderID)
 
 ' Build body directly from cell values
 body = "Dear " & customerName & "," & vbCrLf & vbCrLf & _
 "Thank you for your order." & vbCrLf & vbCrLf & _
 "Here are your order details:" & vbCrLf & _
 "Order ID: " & orderID & vbCrLf & _
 "Amount: " & amount & vbCrLf & vbCrLf & _
 "We appreciate your business and will contact you if any further action is needed." & vbCrLf & vbCrLf & _
 "Best regards," & vbCrLf & _
 "Customer Support Team"
 
 ' Create & send email
 Set OutlookMail = OutlookApp.CreateItem(0) ' olMailItem
 
 With OutlookMail
 .To = recipient
 .Subject = subject
 .Body = body
 
 .Display ' Shows the email so you can review it manually
 '.Send ' Uncomment when you're ready to send automatically
 End With
 
 Set OutlookMail = Nothing
 
NextRow:
 Next i
 
 MsgBox "All emails processed. Check Outlook for the displayed messages.", vbInformation
 
CleanUp:
 Set OutlookMail = Nothing
 Set OutlookApp = Nothing
 Exit Sub
ErrorHandler:
 MsgBox "An error occurred: " & Err.Description, vbCritical
 Resume CleanUp
End Sub
<पी> एक्सेल ईमेल जेनरेटर:वीबीए का उपयोग करके वैयक्तिकृत आउटलुक ईमेल को स्वचालित करें

<पी> यह वीबीए कोड आउटलुक से जुड़ता है और वर्कशीट में प्रत्येक प्रयुक्त पंक्ति के माध्यम से लूप करता है। यह नाम, ईमेल, विषय, ऑर्डर आईडी और राशि जैसे मान पढ़ता है। फिर यह उन मूल्यों का सीधे उपयोग करके एक वैयक्तिकृत विषय और निकाय बनाता है। अंत में, यह ईमेल प्रदर्शित कर सकता है, इसे एक छोटे से संशोधन के साथ ड्राफ्ट के रूप में सहेज सकता है, या भेज सकता है। अधिकांश व्यावसायिक वर्कफ़्लो के लिए, .प्रदर्शन से प्रारंभ करें सबसे अच्छा है क्योंकि यह आपको प्रत्येक संदेश के बाहर जाने से पहले उसकी समीक्षा करने देता है।

चरण 5:अपने संदेश को पुन:प्रयोज्य टेम्पलेट सिस्टम में बदलना

<पी> एक ईमेल बॉडी को हार्डकोड करना काम करता है, लेकिन एक अधिक लचीला एक्सेल ईमेल जेनरेटर वर्कशीट के अंदर टेम्पलेट को संग्रहीत करता है। ईमेल टेम्प्लेट के लिए एक सेल जोड़ें, फिर बेस टेम्प्लेट को टेक्स्ट के रूप में उस सेल में पेस्ट करें। गतिशील प्रतिस्थापन के लिए घुंघराले ब्रेसिज़ में प्लेसहोल्डर का उपयोग करें:

  • कोड को दूसरे मॉड्यूल में डालें .
<पी> वीबीए कोड:
Sub SendPersonalizedEmails_Template()
 Dim OutlookApp As Object
 Dim OutlookMail As Object
 Dim ws As Worksheet
 Dim lastRow As Long
 Dim i As Long
 Dim emailTemplate As String
 Dim subject As String
 Dim body As String
 Dim recipient As String
 Dim customerName As String
 Dim orderID As String
 Dim amount As String
 
 On Error GoTo ErrorHandler
 Set OutlookApp = CreateObject("Outlook.Application")
 Set ws = ThisWorkbook.Sheets("Data") ' Change sheet name if different
 
 ' Find last row (based on column A - Email)
 lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
 
 ' Get template from cell F2 (adjust cell reference if you placed it elsewhere)
 emailTemplate = ws.Range("F2").Value
 
 If emailTemplate = "" Then
 MsgBox "Email template is empty. Please add it to cell F2.", vbExclamation
 Exit Sub
 End If
 
 For i = 2 To lastRow
 recipient = Trim(ws.Cells(i, 1).Value)
 customerName = Trim(ws.Cells(i, 2).Value)
 subject = Trim(ws.Cells(i, 3).Value)
 orderID = Trim(ws.Cells(i, 4).Value)
 amount = Trim(ws.Cells(i, 5).Value)
 
 ' Skip row if no valid email
 If recipient = "" Or InStr(recipient, "@") = 0 Then GoTo NextRow
 
 ' Personalize subject
 subject = Replace(subject, "#{OrderID}", orderID)
 
 ' Personalize body
 body = emailTemplate
 body = Replace(body, "{Name}", customerName)
 body = Replace(body, "{OrderID}", orderID)
 body = Replace(body, "{Amount}", amount)
 ' Add more Replace() lines for other placeholders if needed
 
 ' Create & send email
 Set OutlookMail = OutlookApp.CreateItem(0) ' olMailItem
 
 With OutlookMail
 .To = recipient
 .Subject = subject
 .HTMLBody = body
 '.CC = "[email protected]"
 '.Attachments.Add "C:\Invoices\" & orderID & ".pdf" ' Optional
 
 .Display ' Shows the email so you can review it manually
 '.Send ' Uncomment when you're ready to send automatically
 End With
 
 Set OutlookMail = Nothing
 
NextRow:
 Next i
 
 MsgBox "All emails processed. Check Outlook for the displayed messages.", vbInformation
 
CleanUp:
 Set OutlookMail = Nothing
 Set OutlookApp = Nothing
 Exit Sub
ErrorHandler:
 MsgBox "An error occurred: " & Err.Description, vbCritical
 Resume CleanUp
End Sub
  • चलाएँ पर क्लिक करें टेम्प्लेट किए गए ईमेल का पूर्वावलोकन करने के लिए आइकन।
<पी> एक्सेल ईमेल जेनरेटर:वीबीए का उपयोग करके वैयक्तिकृत आउटलुक ईमेल को स्वचालित करें

<पी> मुख्य कोड स्पष्टीकरण:
  • आउटलुक सेटअप: CreateObject(“Outlook.Application”) लेट बाइंडिंग का उपयोग करके एक आउटलुक इंस्टेंस बनाता है, जो सभी ऑफिस संस्करणों में अधिक लचीला है।
  • पंक्तियों के माध्यम से लूपिंग: मैक्रो अंतिम पंक्ति को गतिशील रूप से ढूंढता है और हेडर को छोड़ने के लिए पंक्ति 2 से पुनरावृत्त करता है।
  • टेम्पलेट वैयक्तिकरण: बदलें फ़ंक्शन {Name} जैसे प्लेसहोल्डर्स को स्वैप करता है पंक्ति-विशिष्ट डेटा के साथ. यह VBA-संचालित टेम्प्लेट सिस्टम का मूल है। और जोड़ें बदलें अतिरिक्त फ़ील्ड के लिए लाइनें.
  • ईमेल निर्माण: .HTMLBody का प्रयोग करें बोल्ड टेक्स्ट और लिंक जैसे समृद्ध स्वरूपण के लिए। यदि आपका टेम्प्लेट सादा पाठ है, तो .Body का उपयोग करें इसके बजाय.
  • भेजा जा रहा है: .भेजें .प्रदर्शन करते समय संदेश स्वचालित रूप से भेजता है इसे समीक्षा के लिए खोलता है, जो परीक्षण के दौरान उपयोगी होता है।
  • त्रुटि प्रबंधन: उदाहरणों में बुनियादी त्रुटि प्रबंधन और गुम ईमेल पतों वाली पंक्तियों को छोड़ना शामिल है। उत्पादन में, आप लॉगिंग और अधिक विस्तृत सत्यापन जोड़ना चाह सकते हैं।

चरण 6:मैक्रो का परीक्षण और संचालन

  • अपनी कार्यपुस्तिका को .xlsm के रूप में सहेजें फ़ाइल.
  • नमूना डेटा भरें. अवांछित संदेश भेजने से बचने के लिए परीक्षण के लिए अपने स्वयं के ईमेल पते का उपयोग करें।
  • मैक्रो को एक बटन पर असाइन करें या डेवलपर पर जाएं टैब>> मैक्रोज़ चुनें .
  • व्यक्तिगत ईमेल भेजें चुनें या SendPersonalizedEmails_Template>>चलाएँ पर क्लिक करें .
<पी> एक्सेल ईमेल जेनरेटर:वीबीए का उपयोग करके वैयक्तिकृत आउटलुक ईमेल को स्वचालित करें

  • आउटलुक अनुमति के लिए संकेत दे सकता है। यदि ऐसा होता है, तो अपने परीक्षण सेटअप की पुष्टि करने के बाद ही पहुंच की अनुमति दें।
  • आउटलुक में प्रदर्शित संदेशों या अपने भेजे गए आइटम फ़ोल्डर की जांच करें, यह इस बात पर निर्भर करता है कि आपने .Display का उपयोग किया है या नहीं या .भेजें .
<पी> एक्सेल ईमेल जेनरेटर:वीबीए का उपयोग करके वैयक्तिकृत आउटलुक ईमेल को स्वचालित करें

<पी> परीक्षण युक्ति: .प्रदर्शन से प्रारंभ करें इसके बजाय .भेजें ताकि आप ईमेल को भेजे बिना उसका पूर्वावलोकन कर सकें।

उन्नत टेम्पलेट्स को अनुकूलित करना

  • एकाधिक प्लेसहोल्डर: यदि आपके पास अधिक कॉलम हैं, जैसे कि देय तिथि, तो dueDate =ws.Cells(i, 6).Value जैसे वेरिएबल जोड़ें और बॉडी =रिप्लेस(बॉडी, “{ड्यूडेट}”, ड्यूडेट) का उपयोग करें .
  • सशर्त सामग्री: यदिका प्रयोग करें गतिशील अनुभागों के लिए कथन:
If customField = "VIP" Then
 body = body & "<p>Exclusive offer for you!</p>"
End If
  • एक फ़ाइल से टेम्पलेट: टेम्प्लेट को किसी सेल में संग्रहीत करने के बजाय, इसे किसी टेक्स्ट या HTML फ़ाइल से पढ़ें:
Dim filePath As String
filePath = "C:\Template.html"
Open filePath For Input As #1
emailTemplate = Input$(LOF(1), 1)
Close #1
  • HTML संवर्द्धन: आप टेम्पलेट में चित्र या लिंक एम्बेड कर सकते हैं, जैसे एक्सेल ईमेल जेनरेटर:वीबीए का उपयोग करके वैयक्तिकृत आउटलुक ईमेल को स्वचालित करें या यहां क्लिक करें , और फिर {Link} बदलें गतिशील रूप से.

सामान्य समस्याओं का निवारण

  • आउटलुक नहीं मिला: सुनिश्चित करें कि आउटलुक आपके सिस्टम पर स्थापित है।
  • सुरक्षा संकेत: आउटलुक प्रोग्रामेटिक एक्सेस को प्रतिबंधित कर सकता है। इसे केवल एक्सेल मैक्रो सेटिंग्स ही नहीं, बल्कि आउटलुक और संगठनात्मक सुरक्षा सेटिंग्स द्वारा नियंत्रित किया जाता है।
  • भेजने में त्रुटियां: त्रुटि प्रबंधन जोड़ें जैसे:
On Error GoTo ErrorHandler
' ... code ...
ErrorHandler:
 MsgBox "Error: " & Err.Description
  • प्रदर्शन: ईमेल की बड़ी सूची के लिए, आप संदेशों के बीच थोड़ी देरी जोड़ सकते हैं:
Application.Wait Now + TimeValue("00:00:01")
  • HTML रेंडरिंग समस्याएँ: टेम्प्लेट का सावधानीपूर्वक परीक्षण करें और सुनिश्चित करें कि प्लेसहोल्डर HTML संरचना में हस्तक्षेप न करें।
<पी> यह सेटअप बल्क वैयक्तिकृत मैसेजिंग के लिए अच्छा है। आप अनुलग्नक जोड़कर, भेजे गए ईमेल को एक्सेल में वापस लॉग करके, या विभिन्न परिदृश्यों के लिए कई टेम्पलेट संग्रहीत करके इसे आगे बढ़ा सकते हैं।

निष्कर्ष

<पी> इन चरणों का पालन करके, आप एक एक्सेल ईमेल जेनरेटर बना सकते हैं जो स्प्रेडशीट पंक्तियों से वैयक्तिकृत आउटलुक संदेश बनाने के लिए वीबीए का उपयोग करता है। यह एक व्यावहारिक उदाहरण है कि कैसे VBA किसी वर्कशीट को हल्के ईमेल ऑटोमेशन टूल में बदल सकता है। बार-बार दोहराए जाने वाले आउटलुक संदेशों को हाथ से लिखने के बजाय, आप पुन:प्रयोज्य टेम्पलेट बना सकते हैं और एक्सेल को प्रत्येक पंक्ति से वैयक्तिकृत विवरण भरने दे सकते हैं। इससे प्रक्रिया तेज़, अधिक सुसंगत और बड़े पैमाने पर आसान हो जाती है। एक बार जब आप मूल संस्करण बना लेते हैं, तो आप एक पूर्ण वैयक्तिकृत ईमेल सिस्टम बनाने के लिए इसे HTML फ़ॉर्मेटिंग, एकाधिक टेम्पलेट्स, सशर्त तर्क, अनुलग्नक हैंडलिंग और स्थिति ट्रैकिंग के साथ विस्तारित कर सकते हैं।

समाधान के साथ निःशुल्क उन्नत एक्सेल अभ्यास प्राप्त करें!
  1. टिकटॉक अकाउंट कैसे डिलीट करें टिकटॉक अकाउंट कैसे डिलीट करें

    फेसबुक, ट्विटर, इंस्टाग्राम, स्नैपचैट- कुछ ऐप्स को उपयोगकर्ताओं की संख्या और मान्यता के स्तर तक पहुंचने के लिए मिलता है जो इन सोशल मीडिया अग्रदूतों के पास आम आबादी के बीच है। हालांकि, उन कुछ लोगों में से एक टिकटॉक है, जो अब लाखों उपयोगकर्ताओं द्वारा पसंद किया जाने वाला वीडियो सोशल मीडिया प्लेटफॉर्म

  1. विंडोज़ में वनड्राइव अपलोड अवरुद्ध त्रुटियों का समाधान करें:9 सिद्ध समाधान विंडोज़ में वनड्राइव अपलोड अवरुद्ध त्रुटियों का समाधान करें:9 सिद्ध समाधान

    Microsoft Office एप्लिकेशन स्वचालित रूप से फ़ाइलों को आपके OneDrive क्लाउड खाते में सहेज सकते हैं। हालाँकि, आपके OneDrive खाते या OneDrive की सिंक्रनाइज़ेशन सेटिंग्स के साथ समस्याएँ Office अनुप्रयोगों में अपलोड अवरुद्ध त्रुटियों को ट्रिगर करेंगी। यह ट्यूटोरियल विंडोज़ कंप्यूटर पर Office ऐप्स में On

  1. iOS के लिए Safari में निजी ब्राउज़िंग कैसे चालू करें iOS के लिए Safari में निजी ब्राउज़िंग कैसे चालू करें

    जैसे डेस्कटॉप के लिए सफारी में निजी ब्राउज़िंग को सक्षम करना संभव है, वैसे ही आप ऐप्पल के मोबाइल वेब ब्राउज़र का उपयोग करके भी ऐसा कर सकते हैं। यदि आप आईओएस के लिए सफारी में एक गुप्त विंडो खोलना जानते हैं, तो आप ऐप को अपने ब्राउज़िंग इतिहास, कुकीज़ या स्थानीय उपयोगकर्ता डेटा को सहेजने से रोक सकते है