एक्सेल में टेम्प्लेट के साथ एक डायनामिक ईमेल जेनरेटर बनाना
<पी> ईमेल संचार के सबसे शक्तिशाली उपकरणों में से एक है। ईमेल पीढ़ी को स्वचालित करने से समय की बचत हो सकती है और संचार में निरंतरता सुनिश्चित हो सकती है। एक्सेल वीबीए एक डायनामिक ईमेल जनरेटर बना सकता है जो आपको टेम्प्लेट से स्वचालित रूप से वैयक्तिकृत ईमेल जेनरेट करने की अनुमति देता है। <पी> इस लेख में, हम एक्सेल में टेम्प्लेट के साथ एक डायनामिक ईमेल जनरेटर बनाएंगे। <पी> पूर्वापेक्षाएँ पी>
- Microsoft Excel (2016 या नया).
- एक्सेल की बुनियादी समझ।
- VBA संपादक तक पहुंच (डेवलपर टैब सक्षम)।
चरण 1:अपनी एक्सेल वर्कबुक सेट करना
<पी> डेटा शीट बनाएं पी>- डेटा नामक एक नई शीट जोड़ें।
- अपनी प्राप्तकर्ता जानकारी के लिए कॉलम बनाएं:
- प्रथम नाम
- अंतिम नाम
- ईमेल
- कंपनी
- विभाग
- भूमिका
- बैठक का विषय
- कार्रवाई आइटम
- प्रेषक का नाम
<पी> टेम्पलेट शीट बनाएं पी> - टेम्पलेट नाम से एक और शीट बनाएं।
- निम्नलिखित कॉलम बनाएं:
- टेम्पलेट आईडी
- टेम्पलेट नाम
- विषय पंक्ति
- ईमेल का मुख्य भाग
चरण 2:ईमेल टेम्पलेट बनाना
<पी> एक ईमेल टेम्प्लेट बनाएं जो प्लेसहोल्डर्स जैसे कि {{फर्स्टनाम}}, {{कंपनी}}, {{डिपार्टमेंट}}, {{रोल}} इत्यादि का उपयोग करके गतिशील रूप से मान सम्मिलित करता है।पी> <पी> टेम्पलेट 1: पी> <पी> आइए स्वचालित ऑनबोर्डिंग ईमेल के लिए एक टेम्पलेट बनाएं।Dear {{FirstName}},
Welcome to {{Company}}! We're excited to have you on board.
Your account has been set up with the following details:
Department: {{Department}}
Role: {{Role}}
Best regards,
HR Team <पी> इस टेम्पलेट का उपयोग स्वचालित ऑनबोर्डिंग ईमेल के लिए किया जाता है, जहां वास्तविक मान भेजने से पहले प्लेसहोल्डर को बदल देते हैं, जिससे प्रत्येक प्राप्तकर्ता के लिए एक वैयक्तिकृत संदेश सुनिश्चित होता है। <पी> स्पष्टीकरण: पी> - {{FirstName}}:कर्मचारी के प्रथम नाम के लिए प्लेसहोल्डर।
- {{कंपनी}}:कंपनी के नाम के लिए प्लेसहोल्डर।
- {{विभाग}}:उस विभाग के लिए प्लेसहोल्डर जहां नए कर्मचारी को नियुक्त किया गया है।
- {{भूमिका}}:कर्मचारी की नौकरी की भूमिका के लिए प्लेसहोल्डर।
Hi {{FirstName}},
Thank you for your time during our discussion about {{Meeting Topic}}. As discussed, I'm following up on {{Action Item}}.
Let me know if you have any questions.
Best regards,
{{Sender Name}}
<पी>
चरण 3:VBA कोड डालें
<पी> VBA संपादक खोलने के लिए:- डेवलपर के पास जाएं टैब>> विजुअल बेसिक चुनें .
- सम्मिलित करें पर क्लिक करें>> मॉड्यूल चुनें .
- निम्नलिखित कोड को कॉपी और पेस्ट करें:
Option Explicit
Public Sub GenerateEmails()
Dim ws As Worksheet
Dim templateWs As Worksheet
Dim lastRow As Long
Dim i As Long
Dim emailBody As String
Dim subjectLine As String
Dim templateID As Long
' Set references to worksheets
Set ws = ThisWorkbook.Sheets("Data")
Set templateWs = ThisWorkbook.Sheets("Templates")
' Find last row with data
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' Get template ID from user
templateID = InputBox("Enter the Template ID number:", "Select Template")
' Get template text
subjectLine = GetTemplate("Subject_Line", templateID)
emailBody = GetTemplate("Email_Body", templateID)
' Convert special characters to proper line breaks
emailBody = Replace(emailBody, "\n", vbNewLine)
' Create Outlook items
Dim outlookApp As Object
Dim emailItem As Object
Set outlookApp = CreateObject("Outlook.Application")
' Loop through each row of data
For i = 2 To lastRow
' Create new email
Set emailItem = outlookApp.CreateItem(0)
With emailItem
' Replace placeholders with actual data
.Subject = ReplaceFields(subjectLine, i, ws)
.Body = ReplaceFields(emailBody, i, ws) ' Changed from .HTMLBody to .Body
.To = ws.Cells(i, 3).Value ' Email address in column C
.Display ' Display email (change to .Send to send automatically)
End With
Next i
Set outlookApp = Nothing
End Sub
Private Function GetTemplate(field As String, templateID As Long) As String
Dim templateWs As Worksheet
Dim templateRow As Range
Set templateWs = ThisWorkbook.Sheets("Templates")
' Find the template row
Set templateRow = templateWs.Columns(1).Find(What:=templateID, LookIn:=xlValues, LookAt:=xlWhole)
If Not templateRow Is Nothing Then
Select Case field
Case "Subject_Line"
GetTemplate = templateWs.Cells(templateRow.Row, 3).Value
Case "Email_Body"
GetTemplate = templateWs.Cells(templateRow.Row, 4).Value
End Select
End If
End Function
Private Function ReplaceFields(text As String, rowNum As Long, ws As Worksheet) As String
Dim result As String
result = text
' Replace all field placeholders with actual data
result = Replace(result, "{{FirstName}}", ws.Cells(rowNum, 1).Value)
result = Replace(result, "{{LastName}}", ws.Cells(rowNum, 2).Value)
result = Replace(result, "{{Company}}", ws.Cells(rowNum, 4).Value)
result = Replace(result, "{{Department}}", ws.Cells(rowNum, 5).Value)
result = Replace(result, "{{Role}}", ws.Cells(rowNum, 6).Value)
result = Replace(result, "{{Meeting Topic}}", ws.Cells(rowNum, 7).Value)
result = Replace(result, "{{Action Item}}", ws.Cells(rowNum, 8).Value)
result = Replace(result, "{{Sender Name}}", ws.Cells(rowNum, 9).Value)
ReplaceFields = result
End Function चरण 4:ईमेल जेनरेटर चलाएँ
- डेवलपर पर टैब>> मैक्रोज़ पर क्लिक करें .
- चुनें ईमेल जेनरेट करें >>चलाएँ पर क्लिक करें .
- संदेश बॉक्स में>>टेम्पलेट आईडी दर्ज करें: 1 .
- यह टेम्पलेट 1 का अनुसरण करते हुए सभी मेल भेजेगा।
- फिर से भागो कोड.
- संदेश बॉक्स में>> टेम्पलेट आईडी:2 दर्ज करें .
<पी> यह टेम्प्लेट 2 के बाद सभी मेल भेजेगा। <पी>
- जनरेट किए गए ईमेल को भेजने से पहले उनकी समीक्षा करें।
- यदि समीक्षा की आवश्यकता नहीं है, तो .Send का उपयोग करें .प्रदर्शन के बजाय संपत्ति सभी ईमेल भेजने के लिए.
अनुकूलन युक्तियाँ
<पी> नए प्लेसहोल्डर फ़ील्ड जोड़ना: पी>- डेटा में एक नया कॉलम जोड़ें शीट.
- नए फ़ील्ड को शामिल करने के लिए VBA कोड में रिप्लेसफ़ील्ड फ़ंक्शन को अपडेट करें।
- प्रारूप {{FieldName}} का उपयोग करके अपने ईमेल टेम्प्लेट में नया प्लेसहोल्डर जोड़ें।
<p style="color: blue;">This text will be blue</p>
<strong>This text will be bold</strong>