स्वचालित रूप से ईमेल भेजना हमें उन संदेशों को डिज़ाइन करने की अनुमति देता है जो सभी के लिए एक आकार के होते हैं और उन्हें उपयोगकर्ताओं तक पहुँचाते हैं। स्वचालित ईमेल बनाकर और भेजकर, हम समय बचा सकते हैं। चूंकि यह आपको विशेष समय पर ईमेल भेजने में सक्षम बनाता है, संभावित उपभोक्ताओं के साथ जुड़ने के लिए ईमेल स्वचालन एक उत्कृष्ट तरीका है। सही समय पर सही लोगों को ईमेल सूचनाएं भेजने की क्षमता ईमेल ऑटोमेशन की सबसे मूल्यवान विशेषता है। इस लेख में, हम विभिन्न VBA मैक्रोज़ . प्रदर्शित करेंगे एक्सेल का जो शर्त पूरी होने पर स्वचालित रूप से एक ईमेल भेजता है।
आप कार्यपुस्तिका डाउनलोड कर सकते हैं और उनके साथ अभ्यास कर सकते हैं।
एक्सेल में शर्त पूरी होने पर स्वचालित रूप से ईमेल भेजने के 3 तरीके
जब भी कोई शर्त पूरी होती है, हमें अक्सर अपने ग्राहकों को ईमेल भेजने की आवश्यकता होती है। VBA मैक्रोज़ का उपयोग करना , हम अपनी मेलिंग कार्यक्षमता को अनुकूलित कर सकते हैं। परिणामस्वरूप, हम VBA . का उपयोग करके एक ही समय में अनेक लोगों को ईमेल भेज सकते हैं तकनीक। मैक्रो के साथ स्वचालित रूप से एक ईमेल भेजने के लिए, हमारे पास आउटलुक . होना चाहिए हमारे कंप्यूटर पर प्रीइंस्टॉल्ड। इसलिए हम जो कोड डालेंगे, वह Outlook . का उपयोग करके प्राप्तकर्ताओं को ईमेल भेजेगा ।
1. एक्सेल VBA मैक्रो सेल वैल्यू के आधार पर स्वचालित रूप से ईमेल भेजने के लिए
हम एक एक्सेल VBA मैक्रो . का उपयोग करेंगे हमारे डेटासेट में एक निश्चित कॉलम मान के आधार पर स्वचालित रूप से एक ईमेल भेजने के लिए। इस उदाहरण को प्रदर्शित करने के लिए नीचे दिए गए डेटासेट का उपयोग किया जाएगा। यदि सेल में सेल मान D5 10 . से बड़ा है , हम एक ऐसा फ़ंक्शन विकसित करेंगे जो स्वचालित रूप से एक ईमेल भेजता है।
मान लीजिए, हमारे पास एक सुपर शॉप के कुछ ग्राहक विवरण के निम्नलिखित डेटासेट हैं। डेटासेट में कुछ ग्राहकों के नाम B . कॉलम में होते हैं , कॉलम में उनके ईमेल पते C , और कॉलम D . में उनके क्रय उत्पादों के लिए कुछ बकाया . अब, हम उन्हें बकाया बिलों का भुगतान करने का अनुरोध करने के लिए ईमेल भेजना चाहते हैं, लेकिन यहां हमारे पास एक शर्त है जिसका हम पालन करते हैं:यदि ग्राहक का बिल 10 से अधिक है उसके बाद ही हम उन्हें ईमेल भेजेंगे। तो, आइए शर्त पूरी होने पर सेल वैल्यू के आधार पर स्वचालित रूप से ईमेल भेजने की प्रक्रिया देखें।
कदम:
- सबसे पहले, डेवलपर . पर जाएं रिबन से टैब।
- दूसरा, कोड . से श्रेणी, विजुअल बेसिक . पर क्लिक करें विजुअल बेसिक संपादक खोलने के लिए . या Alt + F11 . दबाएं विजुअल बेसिक संपादक खोलने के लिए ।
- ऐसा करने के बजाय, आप बस अपनी वर्कशीट पर राइट-क्लिक कर सकते हैं और कोड देखें पर जा सकते हैं। . यह आपको विजुअल बेसिक एडिटर . पर भी ले जाएगा ।
- यह विजुअल बेसिक एडिटर . में दिखाई देगा जहां हम रेंज से टेबल बनाने के लिए अपने कोड लिखते हैं।
- और, कॉपी और पेस्ट करें VBA कोड नीचे दिखाया गया है।
VBA कोड:
Dim r As Range
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
Set r = Intersect(Range("D5"), Target)
If r Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 10 Then
Call Send_Mail_Automatically1
End If
End Sub
Sub Send_Mail_Automatically1()
Dim ob1 As Object
Dim ob2 As Object
Dim str As String
Set ob1 = CreateObject("Outlook.Application")
Set ob2 = ob1.CreateItem(0)
str = "Hello!" & vbNewLine & vbNewLine & "To prevent further costs," _
& vbNewLine & "please pay before the deadline."
On Error Resume Next
With ob2
.To = Range("C5").Value
.cc = ""
.BCC = ""
.Subject = "Request to Pay Bill"
.Body = str
.Send
End With
On Error GoTo 0
Set ob2 = Nothing
Set ob1 = Nothing
End Sub
- उसके बाद, RubSub . पर क्लिक करके कोड को रन करें बटन या कीबोर्ड शॉर्टकट दबाने से F5 ।
- फिर, एक मैक्रोज़ संवाद दिखाई देगा। दाएँ मैक्रोज़ . पर क्लिक करें फिर, भागो . दबाएं बटन।
- अब, यदि आप अपने दृष्टिकोण . पर जाते हैं आवेदन करें और इनबॉक्स को चेक करें, हमें वह मेल मिलेगा जो आपने अभी VBA मैक्रो के माध्यम से भेजा है एक्सेल से।
VBA कोड स्पष्टीकरण
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Su
Set r = Intersect(Range("D5"), Target)
If r Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 10 Then
Call Send_Mail_Automatically1
End If
End Sub
हम एक निजी उप . का उपयोग करेंगे इसके लिए। क्योंकि हम मैक्रो . का उपयोग नहीं करेंगे इस कोड को चलाने के लिए window. जब सेल का मान बदलता है, तो यह कोड अपने आप निष्पादित हो जाएगा। हम निजी उप . का उपयोग करते हैं कार्यपत्रक परिवर्तन . के साथ प्रतिस्पर्धा। फिर, सेल की संख्या घटाकर एक कर दें, जो कि D5 . है . उसके बाद, देखें कि क्या यह 10 . से अधिक है . अंत में, यदि शर्त पूरी हो जाती है, तो Send_Email_Automatically1 उप प्रक्रिया चलेंगे।
Sub Send_Mail_Automatically1()
Dim ob1 As Object
Dim ob2 As Object
Dim str As String
Set ob1 = CreateObject("Outlook.Application")
Set ob2 = ob1.CreateItem(0)
str = "Hello!" & vbNewLine & vbNewLine & "To prevent further costs," & vbNewLine & "please pay before the deadline."
On Error Resume Next
With ob2
.To = Range("C5").Value
.cc = ""
.BCC = ""
.Subject = "Request to Pay Bill"
.Body = str
.Send
यहां, हम Send_Email_Automatically1 . का उपयोग करते हैं उप प्रक्रिया . फिर, हम चर प्रकार घोषित करते हैं। हम आउटलुक . का उपयोग करते हैं हमारे ईमेल क्लाइंट के रूप में। फिर, हम अपने कोड में ईमेल सामग्री दर्ज करते हैं; str ईमेल का मुख्य भाग दिखा रहा है, और फिर हम ईमेल को सेल मान C5 . पर भेजना चाहते हैं , जहां हमारे ग्राहकों के ईमेल संग्रहीत होते हैं, हम विषय को '.विषय . पर रखते हैं '। उसके बाद, '.भेजें ' का उपयोग हमारे ईमेल भेजने के लिए किया जाता है।
और पढ़ें: सेल सामग्री (2 तरीके) के आधार पर एक्सेल से स्वचालित रूप से ईमेल भेजें
2. VBA कोड का उपयोग करके नियत तिथि के आधार पर स्वचालित रूप से ईमेल भेजें
इस पद्धति में, हम बिल की नियत तारीख नजदीक आने पर स्वचालित रूप से एक ईमेल भेजने के लिए एक्सेल वीबीए मैक्रो का उपयोग करेंगे। यह एक तरह के रिमाइंडर का काम करता है। इसे प्रदर्शित करने के लिए, हम नीचे दिए गए डेटासेट का उपयोग करेंगे। और डेटासेट में कॉलम में कुछ ग्राहक नाम शामिल हैं B , कॉलम में उनका ईमेल पता C , वह संदेश जिसे हम कॉलम में भेजना चाहते हैं D , और कॉलम E . में देय भुगतान की समय सीमा . तो, आइए एक शर्त पूरी होने की तारीख के आधार पर स्वचालित रूप से ईमेल भेजने के चरणों को देखें।
कदम:
- सबसे पहले, विकसित करें . पर जाएं रिबन से r टैब।
- दूसरा, विजुअल बेसिक पर क्लिक करें विजुअल बेसिक संपादक खोलने के लिए ।
- विजुअल बेसिक संपादक खोलने का दूसरा तरीका बस Alt + F11 press दबाएं ।
- या, शीट पर राइट-क्लिक करें, फिर कोड देखें select चुनें ।
- और, इससे विज़ुअल बेसिक विंडो खुल जाएगी।
- उसके बाद, VBA कोड को कॉपी और पेस्ट करें नीचे।
VBA कोड:
Public Sub Send_Email_Automatically2()
Dim rngD, rngS, rngT As Range
Dim ob1, ob2 As Object
Dim LRow, x As Long
Dim l, strbody, rSendValue, mSub As String
On Error Resume Next
Set rngD = Application.InputBox("Deadline Range:", "Exceldemy", , , , , , 8)
If rngD Is Nothing Then Exit Sub
Set rngS = Application.InputBox("Email Range:", "Exceldemy", , , , , , 8)
If rngS Is Nothing Then Exit Sub
Set rngT = Application.InputBox("Email Topic Range:", "Exceldemy", , , , , , 8)
If rngT Is Nothing Then Exit Sub
LRow = rngD.Rows.Count
Set rngD = rngD(1)
Set rngS = rngS(1)
Set rngT = rngT(1)
Set ob1 = CreateObject("Outlook.Application")
For x = 1 To LRow
rngDValue = ""
rngDValue = rngD.Offset(x - 1).Value
If rngDValue <> "" Then
If CDate(rngDValue) - Date <= 7 And CDate(rngDValue) - Date > 0 Then
rngSValue = rngS.Offset(x - 1).Value
mSub = rngT.Offset(x - 1).Value & " on " & rngDValue
l = "<br><br>"
strbody = "<HTML><BODY>"
strbody = strbody & "Hello! " & rngSValue & l
strbody = strbody & rngT.Offset(x - 1).Value & l
strbody = strbody & "</BODY></HTML>"
Set ob2 = ob1.CreateItem(0)
With ob2
.Subject = mSub
.To = rSendValue
.HTMLBody = strbody
.Send
End With
Set ob2 = Nothing
End If
End If
Next
Set ob1 = Nothing
End Sub
- आगे, F5 कुंजी दबाएं या उप चलाएँ . पर क्लिक करें कोड चलाने के लिए बटन।
- अब, समय सीमा कॉलम श्रेणी का चयन करें और ठीक . पर क्लिक करें ।
- इसी प्रकार, ईमेल कॉलम श्रेणी का चयन करें और ठीक hit दबाएं जारी रखने के लिए।
- फिर, संदेश कॉलम श्रेणी चुनें और ठीक . क्लिक करें ।
- और, बस। संदेश अब ईमेल पते पर भेजे जाते हैं। आप अपने दृष्टिकोण . की जांच कर सकते हैं यह सुनिश्चित करने के लिए इनबॉक्स करें।
VBA कोड स्पष्टीकरण
Public Sub Send_Email_Automatically2()
Dim rngD, rngS, rngT As Range
Dim ob1, ob2 As Object
Dim LRow, x As Long
Dim l, strbody, rSendValue, mSub As String
On Error Resume Next
Set rngD = Application.InputBox("Deadline Range:", "Exceldemy", , , , , , 8)
If rngD Is Nothing Then Exit Sub
Set rngS = Application.InputBox("Email Range:", "Exceldemy", , , , , , 8)
If rngS Is Nothing Then Exit Sub
Set rngT = Application.InputBox("Email Topic Range:", "Exceldemy", , , , , , 8)
If rngT Is Nothing Then Exit Sub
LRow = rngD.Rows.Count
Set rngD = rngD(1)
Set rngS = rngS(1)
Set rngT = rngT(1)
Set ob1 = CreateObject("Outlook.Application")
यहां, हम फिर से एक निजी उप . का उपयोग करते हैं , Send_Email_Automatically2 हमारे उप . का नाम है . प्रक्रिया . हम परिवर्तनीय प्रकार घोषित करते हैं। फिर, हम इनपुटबॉक्स . का उपयोग करते हैं मूल्य सीमा प्रदान करने के लिए। उसके बाद, हम आउटलुक . चुनते हैं हमारे मेल क्लाइंट के रूप में।
For x = 1 To LRow
rngDValue = ""
rngDValue = rngD.Offset(x - 1).Value
If rngDValue <> "" Then
If CDate(rngDValue) - Date <= 7 And CDate(rngDValue) - Date > 0 Then
rngSValue = rngS.Offset(x - 1).Value
mSub = rngT.Offset(x - 1).Value & " on " & rngDValue
l = "<br><br>"
strbody = "<HTML><BODY>"
strbody = strbody & "Hello! " & rngSValue & l
strbody = strbody & rngT.Offset(x - 1).Value & l
strbody = strbody & "</BODY></HTML>"
Set ob2 = ob1.CreateItem(0)
With ob2
.Subject = mSub
.To = rSendValue
.HTMLBody = strbody
.Send
फिर हम VBA CDate . का उपयोग करते हैं यह देखने के लिए कार्य करता है कि कोई तिथि वर्तमान तिथि के सात दिनों के भीतर है या नहीं। फिर, हमारे कोड में, ईमेल सामग्री सेट करें। अंत में, हम '.भेजें . का उपयोग करते हैं ' हमारा ईमेल भेजने के लिए।
और पढ़ें: तारीख के आधार पर एक्सेल से स्वचालित रूप से ईमेल कैसे भेजें
समान रीडिंग
- कैसे देखें कि साझा एक्सेल फ़ाइल में कौन है (त्वरित चरणों के साथ)
- Excel में शेयर वर्कबुक कैसे सक्षम करें
- VBA का उपयोग करके किसी Excel कार्यपत्रक से स्वचालित रूप से अनुस्मारक ईमेल भेजें
- Excel का उपयोग करके आउटलुक से बल्क ईमेल कैसे भेजें (3 तरीके)
- एक्सेल से अटैचमेंट के साथ ईमेल भेजने के लिए मैक्रो कैसे लागू करें
3. एकाधिक शर्तें पूरी होने पर Excel VBA के साथ स्वचालित रूप से ईमेल भेजें
इस विधि में, हम फिर से एक VBA . का उपयोग करने जा रहे हैं मैक्रो एक ईमेल भेजने के लिए, लेकिन इस समय में जब कई शर्तें पूरी होंगी तभी ग्राहक को संदेश भेजे जाएंगे। तो, आइए स्वचालित रूप से ईमेल भेजने की प्रक्रियाओं को देखें।
कदम:
- शुरू करने के लिए, डेवलपर . पर क्लिक करें रिबन पर टैब।
- दूसरा, विजुअल बेसिक एडिटर लॉन्च करें विजुअल बेसिक . पर क्लिक करके ।
- वैकल्पिक रूप से, आप विजुअल बेसिक संपादक तक पहुंच सकते हैं Alt + F11 . दबाकर ।
- या, राइट-क्लिक करें शीट पर और कोड देखें choose चुनें मेनू से।
- और विज़ुअल बेसिक विंडो दिखाई देगी।
- वहां कोड लिखें।
VBA कोड:
Sub Send_Email_Automatically3()
Dim wrksht As Worksheet
Dim add As String, mSub As String, N As String
Dim eRow As Long, x As Long
Set wrksht = ThisWorkbook.Sheets("Multiple Conditions")
With wrksht
eRow = .Cells(.Rows.Count, 5).End(xlUp).Row
For x = 5 To eRow
If .Cells(x, 4) >= 1 And .Cells(x, 5) = "Yes" Then
add = .Cells(x, 3)
mSub = "Request to Pay Bill"
N = .Cells(x, 2)
Call Multiple_Conditions(add, mSub, N)
End If
Next x
End With
End Sub
Sub Multiple_Conditions(mAddress As String, mSubject As String, eName As String)
Dim ob1 As Object
Dim ob2 As Object
Set ob1 = CreateObject("Outlook.Application")
Set ob2 = ob1.CreateItem(0)
With ob2
.To = add
.CC = ""
.BCC = ""
.Subject = mSub
.Body = "Hello!" & N & ", To prevent further costs, please pay before the deadline."
.Attachments.add ActiveWorkbook.FullName
.Send
End With
Set pMail = Nothing
Set pApp = Nothing
End Sub
- आखिरकार, F5 कुंजी दबाएं कोड चलाने के लिए।
- एक मैक्रो उसके बाद डायलॉग दिखाई देगा। उसके बाद, उपयुक्त मैक्रोज़ . चुनें और चलाएं . दबाएं बटन।
- इसी तरह, पिछली विधियों में, यदि आप Outlook . खोलते हैं और अपने मेलबॉक्स में देखें, आपको वह ईमेल दिखाई देगा जो आपने अभी हाल ही में VBA मैक्रो . के माध्यम से भेजा है एक्सेल से।
VBA कोड स्पष्टीकरण
Sub Send_Email_Automatically3()
Dim wrksht As Worksheet
Dim add As String, mSub As String, N As String
Dim eRow As Long, x As Long
Set wrksht = ThisWorkbook.Sheets("Multiple Conditions")
With wrksht
eRow = .Cells(.Rows.Count, 5).End(xlUp).Row
For x = 5 To eRow
If .Cells(x, 4) >= 1 And .Cells(x, 5) = "Yes" Then
add = .Cells(x, 3)
mSub = "Request to Pay Bill"
N = .Cells(x, 2)
Call Multiple_Conditions(add, mSub, N)
यहां, हम दो अलग-अलग प्रक्रियाओं का उपयोग करते हैं। Send_Email_Automatically3 हमारी पहली उप प्रक्रिया . का नाम है . हमने 'एकाधिक शर्तें . सेट की हैं ' हमारी शीट के रूप में और चर . घोषित करें प्रकार फिर, हम अंतिम पंक्ति संख्या की खोज करते हैं। इसके अलावा, क्योंकि हमारा मान 5 row पंक्ति से शुरू होता है , हमने पंक्ति को स्थानांतरित कर दिया है 5 हमारे कोड के अंत तक।
Sub Multiple_Conditions(mAddress As String, mSubject As String, eName As String)
Dim ob1 As Object
Dim ob2 As Object
Set ob1 = CreateObject("Outlook.Application")
Set ob2 = ob1.CreateItem(0)
With ob2
.To = add
.CC = ""
.BCC = ""
.Subject = mSub
.Body = "Hello!" & N & ", To prevent further costs, please pay before the deadline."
.Attachments.add ActiveWorkbook.FullName
.Send
फिर, हम एकाधिक_शर्तें call कहते हैं , हमारी दूसरी उप प्रक्रिया . हम आउटलुक . चुनते हैं हमारे मेल क्लाइंट के रूप में। फिर, हमारे कोड में, ईमेल सामग्री सेट करें। अनुलग्नक . का उपयोग करना तकनीक, हम ईमेल में एक्सेल फाइल जोड़ रहे हैं। उसके बाद, हम '.भेजें . के साथ भेजने के लिए अपने ईमेल का उपयोग करते हैं '.
और पढ़ें: ईमेल कैसे भेजें यदि एक्सेल में शर्तें पूरी होती हैं (3 आसान तरीके)
निष्कर्ष
उपरोक्त विधियां एक्सेल में शर्त पूरी होने पर स्वचालित रूप से ईमेल भेजने में आपकी सहायता करेंगी . आशा है कि यह आपकी मदद करेगा! यदि आपका कोई प्रश्न, सुझाव या प्रतिक्रिया है तो कृपया हमें टिप्पणी अनुभाग में बताएं। या आप ExcelDemy.com . में हमारे अन्य लेखों पर एक नज़र डाल सकते हैं ब्लॉग!
संबंधित लेख
- Excel से Outlook को स्वचालित ईमेल कैसे भेजें (4 तरीके)
- मैक्रो का उपयोग करके शरीर के साथ एक्सेल से ईमेल कैसे भेजें (आसान चरणों के साथ)
- एक्सेल मैक्रो:सेल में किसी पते पर ईमेल भेजें (2 आसान तरीके)
- एक्सेल स्प्रेडशीट से एकाधिक ईमेल कैसे भेजें (2 आसान तरीके)
- मैक्रो एक्सेल से बॉडी के साथ ईमेल भेजने के लिए (3 उपयोगी मामले)
- ईमेल द्वारा संपादन योग्य एक्सेल स्प्रेडशीट कैसे भेजें (3 त्वरित तरीके)