স্বয়ংক্রিয়ভাবে ইমেল পাঠানো হচ্ছে আমাদেরকে এমন বার্তা ডিজাইন করার অনুমতি দেয় যা এক-আকার-ফিট-সবই এবং ব্যবহারকারীদের কাছে পৌঁছে দেয়। স্বয়ংক্রিয় ইমেল তৈরি এবং পাঠানোর মাধ্যমে, আমরা সময় বাঁচাতে পারি। যেহেতু এটি আপনাকে নির্দিষ্ট সময়ে ইমেল পাঠাতে সক্ষম করে, তাই ইমেল অটোমেশন সম্ভাব্য গ্রাহকদের সাথে জড়িত হওয়ার জন্য একটি চমৎকার পদ্ধতি। সঠিক সময়ে সঠিক লোকেদের কাছে ইমেল বিজ্ঞপ্তি পাঠানোর ক্ষমতা ইমেল অটোমেশনের সবচেয়ে মূল্যবান বৈশিষ্ট্য। এই নিবন্ধে, আমরা বিভিন্ন VBA ম্যাক্রো প্রদর্শন করব এক্সেলের যে শর্ত পূরণ হলে স্বয়ংক্রিয়ভাবে একটি ইমেল পাঠায়।
আপনি ওয়ার্কবুক ডাউনলোড করতে পারেন এবং তাদের সাথে অনুশীলন করতে পারেন।
Excel এ শর্ত পূরণ হলে স্বয়ংক্রিয়ভাবে ইমেল পাঠানোর ৩টি পদ্ধতি
যখনই একটি শর্ত পূরণ করা হয়, আমাদের প্রায়শই আমাদের গ্রাহকদের ইমেল পাঠাতে হবে। 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
আমরা একটি ব্যক্তিগত সাব ব্যবহার করব৷ এই জন্য কারণ আমরা ম্যাক্রো ব্যবহার করব না এই কোড চালানোর জন্য উইন্ডো। যখন একটি ঘরের মান পরিবর্তন হয়, এই কোডটি স্বয়ংক্রিয়ভাবে কার্যকর হবে। আমরা ব্যক্তিগত সাব ব্যবহার করি ওয়ার্কশীট পরিবর্তনের সাথে ঘটনা তারপর, কক্ষের সংখ্যা কমিয়ে এক করুন, যা হল 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-এ পাঠাতে চাই , যেখানে আমাদের গ্রাহকদের ইমেলগুলি সংরক্ষণ করা হয়, আমরা '.বিষয় এ বিষয় রাখি। ' এটি অনুসরণ করে, '.পাঠুন৷ ' আমাদের ইমেল পাঠাতে ব্যবহার করা হয়।
আরো পড়ুন: সেল বিষয়বস্তুর উপর ভিত্তি করে Excel থেকে স্বয়ংক্রিয়ভাবে ইমেল পাঠান (2 পদ্ধতি)
2. VBA কোড ব্যবহার করে নির্ধারিত তারিখের ভিত্তিতে স্বয়ংক্রিয়ভাবে ইমেল পাঠান
এই পদ্ধতিতে, বিলের নির্ধারিত তারিখ কাছে আসার সাথে সাথে আমরা স্বয়ংক্রিয়ভাবে একটি ইমেল পাঠাতে একটি এক্সেল VBA ম্যাক্রো ব্যবহার করব। এটি এক ধরণের অনুস্মারক হিসাবে কাজ করে। এটি প্রদর্শন করতে, আমরা নীচের ডেটাসেট ব্যবহার করব। এবং ডেটাসেটে B কলামে কিছু গ্রাহকের নাম রয়েছে , কলামে তাদের ইমেল ঠিকানা C , আমরা কলামে যে বার্তা পাঠাতে চাই D , এবং E কলামে বকেয়া অর্থপ্রদানের সময়সীমা . সুতরাং, একটি শর্ত সন্তুষ্ট হওয়ার তারিখের উপর নির্ভর করে স্বয়ংক্রিয়ভাবে ইমেল পাঠানোর পদক্ষেপগুলি দেখুন৷
পদক্ষেপ:
- প্রথমে, ডেভেলপ এ যান রিবন থেকে r ট্যাব।
- দ্বিতীয়, ভিজ্যুয়াল বেসিক-এ ক্লিক করুন ভিজ্যুয়াল বেসিক এডিটর খুলতে .
- ভিজ্যুয়াল বেসিক এডিটর খোলার আরেকটি উপায় Alt + F11 টিপতে হয় .
- অথবা, শীটে ডান-ক্লিক করুন, তারপর কোড দেখুন নির্বাচন করুন .
- এবং, এটি ভিজ্যুয়াল বেসিক উইন্ডো খুলবে।
- এর পর, 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 কী টিপুন অথবা রান সাব-এ ক্লিক করুন কোড চালানোর জন্য বোতাম।
- এখন, সময়সীমার কলাম পরিসীমা নির্বাচন করুন এবং ঠিক আছে ক্লিক করুন .
- একইভাবে, ইমেল কলাম পরিসর নির্বাচন করুন এবং ঠিক আছে টিপুন চালিয়ে যেতে।
- তারপর, বার্তা কলামের পরিসর বেছে নিন এবং ঠিক আছে ক্লিক করুন .
- এবং, এটাই। বার্তাগুলি এখন ইমেল ঠিকানায় পাঠানো হয়। আপনি আপনার আউটলুক পরীক্ষা করতে পারেন নিশ্চিত করতে ইনবক্স করুন।
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")
এখানে, আমরা আবার একটি ব্যক্তিগত সাব ব্যবহার করি , সেন্ড_ইমেল_স্বয়ংক্রিয়ভাবে2 আমাদের সাব এর নাম . প্রক্রিয়া . আমরা পরিবর্তনশীল ধরনের ঘোষণা. তারপর, আমরা ইনপুটবক্স ব্যবহার করি মান পরিসীমা প্রদান করতে. এর পরে, আমরা আউটলুক বেছে নিই আমাদের মেল ক্লায়েন্ট হিসাবে।
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 ব্যবহার করি একটি তারিখ বর্তমান তারিখের সাত দিনের মধ্যে আছে কিনা তা দেখতে ফাংশন। তারপর, আমাদের কোডে, ইমেল সামগ্রী সেট করুন। অবশেষে, আমরা '.Send ব্যবহার করি আমাদের ইমেল পাঠাতে।
আরো পড়ুন: তারিখ ভিত্তিক এক্সেল থেকে কীভাবে স্বয়ংক্রিয়ভাবে ইমেল পাঠাবেন
একই রকম পড়া
- একটি ভাগ করা এক্সেল ফাইলে কে আছে তা কীভাবে দেখতে হয় (দ্রুত পদক্ষেপ সহ)
- এক্সেল এ শেয়ার ওয়ার্কবুক কিভাবে সক্ষম করবেন
- VBA ব্যবহার করে এক্সেল ওয়ার্কশীট থেকে স্বয়ংক্রিয়ভাবে অনুস্মারক ইমেল পাঠান
- এক্সেল ব্যবহার করে কিভাবে আউটলুক থেকে বাল্ক ইমেল পাঠাবেন (3 উপায়)
- অ্যাটাচমেন্ট সহ Excel থেকে ইমেল পাঠাতে কিভাবে ম্যাক্রো প্রয়োগ করবেন
3. একাধিক শর্ত পূরণ হলে এক্সেল VBA দিয়ে স্বয়ংক্রিয়ভাবে ইমেল পাঠান
এই পদ্ধতিতে, আমরা আবার একটি VBA ব্যবহার করতে যাচ্ছি ম্যাক্রো একটি ইমেইল পাঠাতে হবে, কিন্তু এই সময়ে যখন একাধিক শর্ত পূরণ হবে তখনই গ্রাহকের কাছে বার্তা পাঠানো হবে। সুতরাং, আসুন স্বয়ংক্রিয়ভাবে ইমেল পাঠানোর প্রক্রিয়াগুলো দেখি।
পদক্ষেপ:
- শুরু করতে, বিকাশকারী এ ক্লিক করুন রিবনে ট্যাব।
- দ্বিতীয়, ভিজ্যুয়াল বেসিক এডিটর চালু করুন ভিজ্যুয়াল বেসিক-এ ক্লিক করে .
- বিকল্পভাবে, আপনি ভিজ্যুয়াল বেসিক এডিটর অ্যাক্সেস করতে পারেন Alt + F11 টিপে .
- অথবা, ডান-ক্লিক করুন শীটে এবং কোড দেখুন বেছে নিন মেনু থেকে।
- এবং ভিজ্যুয়াল বেসিক উইন্ডো আসবে।
- সেখানে কোডটি লিখুন।
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)
এখানে, আমরা দুটি ভিন্ন পদ্ধতি ব্যবহার করি। পাঠুন_ইমেল_স্বয়ংক্রিয়ভাবে3 আমাদের প্রথম উপ পদ্ধতির নাম . আমরা 'একাধিক শর্তাদি সেট করি৷ ' আমাদের শীট হিসাবে এবং ভেরিয়েবল ঘোষণা করুন প্রকার তারপর, আমরা শেষ সারি নম্বর আবিষ্কার করি। উপরন্তু, কারণ আমাদের মান সারি 5 থেকে শুরু হয় , আমরা সারি 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
তারপর, আমরা মাল্টিপল_কন্ডিশন কল করি , আমাদের দ্বিতীয় সাব প্রসিডিউর . আমরা আউটলুক বেছে নিই আমাদের মেইল ক্লায়েন্ট হিসাবে। তারপর, আমাদের কোডে, ইমেল সামগ্রী সেট করুন। সংযুক্তি ব্যবহার করে কৌশল, আমরা ইমেইলে এক্সেল ফাইল যোগ করছি। এর পরে, আমরা '.Send দিয়ে পাঠাতে আমাদের ইমেল ব্যবহার করি৷ '।
আরো পড়ুন: এক্সেলে শর্ত পূরণ হলে কীভাবে ইমেল পাঠাবেন (3টি সহজ পদ্ধতি)
উপসংহার
উপরের পদ্ধতিগুলি আপনাকে Excel এ শর্ত পূরণ হলে স্বয়ংক্রিয়ভাবে ইমেল পাঠাতে সহায়তা করবে . আশা করি এটা তোমাকে সাহায্য করবে! আপনার যদি কোন প্রশ্ন, পরামর্শ বা প্রতিক্রিয়া থাকে তাহলে অনুগ্রহ করে মন্তব্য বিভাগে আমাদের জানান। অথবা আপনি ExcelDemy.com-এ আমাদের অন্যান্য নিবন্ধগুলিতে এক নজর দেখতে পারেন ব্লগ!
সম্পর্কিত প্রবন্ধ
- এক্সেল থেকে আউটলুকে কিভাবে স্বয়ংক্রিয় ইমেল পাঠাবেন (৪টি পদ্ধতি)
- একটি ম্যাক্রো ব্যবহার করে (সহজ পদক্ষেপ সহ) কিভাবে Excel থেকে ইমেল পাঠাবেন
- এক্সেল ম্যাক্রো:সেলের একটি ঠিকানায় ইমেল পাঠান (2টি সহজ উপায়)
- এক্সেল স্প্রেডশীট (2টি সহজ পদ্ধতি) থেকে একাধিক ইমেল কীভাবে পাঠাবেন
- বডি সহ এক্সেল থেকে ইমেল পাঠানোর জন্য ম্যাক্রো (3টি দরকারী ক্ষেত্রে)
- কিভাবে ইমেলের মাধ্যমে একটি সম্পাদনাযোগ্য এক্সেল স্প্রেডশীট পাঠাবেন (৩টি দ্রুত পদ্ধতি)