Computer >> คอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

วิธีการส่งอีเมลโดยอัตโนมัติเมื่อตรงตามเงื่อนไขใน Excel

ส่งอีเมลโดยอัตโนมัติ ช่วยให้เราสามารถออกแบบข้อความที่มีขนาดเดียวและส่งมอบให้กับผู้ใช้ได้ การสร้างและส่งอีเมลอัตโนมัติ เราอาจประหยัดเวลาได้ เนื่องจากช่วยให้คุณสามารถส่งอีเมลได้ในช่วงเวลาหนึ่ง ระบบอีเมลอัตโนมัติจึงเป็นแนวทางที่ยอดเยี่ยมในการมีส่วนร่วมกับผู้ที่มีแนวโน้มจะเป็นลูกค้า ความสามารถในการส่งการแจ้งเตือนทางอีเมลไปยังบุคคลที่ใช่ในเวลาที่เหมาะสมคือคุณลักษณะที่มีค่าที่สุดของระบบอัตโนมัติของอีเมล ในบทความนี้ เราจะสาธิต มาโคร VBA . ต่างๆ ของ excel ที่ส่งอีเมลโดยอัตโนมัติเมื่อตรงตามเงื่อนไข

คุณสามารถดาวน์โหลดเวิร์กบุ๊กและฝึกฝนกับพวกเขาได้

3 วิธีในการส่งอีเมลโดยอัตโนมัติเมื่อตรงตามเงื่อนไขใน Excel

เมื่อใดก็ตามที่เป็นไปตามเงื่อนไข เรามักจะต้องส่งอีเมลถึงลูกค้าของเรา การใช้ มาโคร VBA เราสามารถปรับแต่งฟังก์ชันการส่งจดหมายของเราได้ ด้วยเหตุนี้ เราอาจส่งอีเมลถึงผู้คนจำนวนมากพร้อมๆ กันโดยใช้ VBA เทคนิค. ในการส่งอีเมลโดยอัตโนมัติด้วยมาโคร เราต้องมี Outlook ติดตั้งไว้ล่วงหน้าบนคอมพิวเตอร์ของเรา ดังนั้นรหัสที่เราจะใส่จะส่งอีเมลไปยังผู้รับโดยใช้ Outlook .

1. มาโคร Excel VBA เพื่อส่งอีเมลโดยอัตโนมัติตามค่าของเซลล์

เราจะใช้ มาโคร VBA excel ของ excel เพื่อส่งอีเมลโดยอัตโนมัติตามค่าคอลัมน์ในชุดข้อมูลของเรา ชุดข้อมูลด้านล่างจะใช้เพื่อสาธิตตัวอย่างนี้ ถ้าค่าของเซลล์ในเซลล์ D5 มีขนาดใหญ่กว่า 10 เราจะพัฒนาฟังก์ชันที่ส่งอีเมลโดยอัตโนมัติ

สมมติว่า เรามีชุดข้อมูลต่อไปนี้ของรายละเอียดลูกค้าของซุปเปอร์ช็อป ชุดข้อมูลประกอบด้วยชื่อลูกค้าบางส่วนในคอลัมน์ B ที่อยู่อีเมลของพวกเขาในคอลัมน์ C และค่าธรรมเนียมบางส่วนสำหรับการซื้อผลิตภัณฑ์ในคอลัมน์ D . ตอนนี้ เราต้องการส่งอีเมลถึงพวกเขาเพื่อขอชำระเงินตามกำหนด แต่ที่นี่เรามีเงื่อนไขที่เราปฏิบัติตาม:หากบิลของลูกค้ามากกว่า 10 เท่านั้นจากนั้นเราจะส่งอีเมลถึงพวกเขา มาดูขั้นตอนการส่งอีเมลโดยอัตโนมัติตามค่าของเซลล์เมื่อตรงตามเงื่อนไข

วิธีการส่งอีเมลโดยอัตโนมัติเมื่อตรงตามเงื่อนไขใน Excel

ขั้นตอน:

  • ขั้นแรก ไปที่ นักพัฒนา จากริบบิ้น
  • ประการที่สอง จาก รหัส ให้คลิกที่ Visual Basic เพื่อเปิด ตัวแก้ไข Visual Basic . หรือกด Alt + F11 เพื่อเปิด ตัวแก้ไข Visual Basic .

วิธีการส่งอีเมลโดยอัตโนมัติเมื่อตรงตามเงื่อนไขใน Excel

  • แทนที่จะทำเช่นนี้ คุณสามารถคลิกขวาที่เวิร์กชีตของคุณและไปที่ ดูโค้ด . ซึ่งจะนำคุณไปยัง Visual Basic Editor . ด้วย .

วิธีการส่งอีเมลโดยอัตโนมัติเมื่อตรงตามเงื่อนไขใน Excel

  • สิ่งนี้จะปรากฏใน ตัวแก้ไข Visual Basic ที่เราเขียนโค้ดเพื่อสร้างตารางจากช่วง
  • และคัดลอกและวาง 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 .

วิธีการส่งอีเมลโดยอัตโนมัติเมื่อตรงตามเงื่อนไขใน Excel

  • จากนั้น มาโคร กล่องโต้ตอบจะปรากฏขึ้น คลิกที่ มาโคร . ทางขวา แล้วกด วิ่ง ปุ่ม.

วิธีการส่งอีเมลโดยอัตโนมัติเมื่อตรงตามเงื่อนไขใน Excel

  • ตอนนี้ ถ้าคุณไปที่ Outlook . ของคุณ สมัครและตรวจสอบกล่องจดหมาย เราจะพบจดหมายที่คุณเพิ่งส่งผ่าน VBA Macro จาก Excel

วิธีการส่งอีเมลโดยอัตโนมัติเมื่อตรงตามเงื่อนไขใน Excel

คำอธิบายโค้ด 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 ขั้นตอนย่อย . จากนั้นเราประกาศประเภทตัวแปร เราใช้ Outlook เป็นไคลเอนต์อีเมลของเรา จากนั้น เราป้อนเนื้อหาอีเมลลงในรหัสของเรา str กำลังแสดงเนื้อหาอีเมล จากนั้นเราต้องการส่งอีเมลไปยังค่าของเซลล์ C5 ที่ซึ่งอีเมลของลูกค้าถูกจัดเก็บไว้ เราใส่หัวเรื่องไว้ที่ '.Subject ’ ต่อจากนั้น 'ส่ง ’ ใช้เพื่อส่งอีเมลของเรา

อ่านเพิ่มเติม: ส่งอีเมลจาก Excel โดยอัตโนมัติตามเนื้อหาของเซลล์ (2 วิธี)

2. ส่งอีเมลโดยอัตโนมัติตามวันครบกำหนดโดยใช้รหัส VBA

ในวิธีนี้ เราจะใช้มาโคร Excel VBA เพื่อส่งอีเมลโดยอัตโนมัติเมื่อใกล้ถึงวันครบกำหนดของใบเรียกเก็บเงิน สิ่งนี้ทำหน้าที่เป็นเครื่องเตือนใจ เพื่อแสดงสิ่งนี้ เราจะใช้ชุดข้อมูลด้านล่าง และชุดข้อมูลมีชื่อลูกค้าบางส่วนในคอลัมน์ B ที่อยู่อีเมลของพวกเขาในคอลัมน์ C , ข้อความที่เราต้องการส่งในคอลัมน์ D และวันครบกำหนดชำระในคอลัมน์ E . มาดูขั้นตอนการส่งอีเมลอัตโนมัติโดยขึ้นอยู่กับวันที่ตรงตามเงื่อนไข

วิธีการส่งอีเมลโดยอัตโนมัติเมื่อตรงตามเงื่อนไขใน Excel

ขั้นตอน:

  • ขั้นแรก ไปที่ พัฒนา แถบ r จากริบบิ้น
  • ขั้นที่สอง คลิกที่ Visual Basic เพื่อเปิด ตัวแก้ไข Visual Basic .
  • อีกวิธีในการเปิด ตัวแก้ไข Visual Basic คือเพียงแค่กด 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 หรือคลิกที่ เรียกใช้ย่อย เพื่อเรียกใช้โค้ด

วิธีการส่งอีเมลโดยอัตโนมัติเมื่อตรงตามเงื่อนไขใน Excel

  • ตอนนี้ เลือกช่วงคอลัมน์กำหนดเวลาแล้วคลิก ตกลง .

วิธีการส่งอีเมลโดยอัตโนมัติเมื่อตรงตามเงื่อนไขใน Excel

  • ในทำนองเดียวกัน เลือกช่วงคอลัมน์อีเมลแล้วกด ตกลง เพื่อดำเนินการต่อ

วิธีการส่งอีเมลโดยอัตโนมัติเมื่อตรงตามเงื่อนไขใน Excel

  • จากนั้น เลือกช่วงคอลัมน์ข้อความแล้วคลิก ตกลง .

วิธีการส่งอีเมลโดยอัตโนมัติเมื่อตรงตามเงื่อนไขใน Excel

  • และก็เท่านั้น ขณะนี้ข้อความถูกส่งไปยังที่อยู่อีเมล คุณสามารถตรวจสอบ Outlook . ของคุณ ทางกล่องข้อความเพื่อให้มั่นใจว่า

คำอธิบายโค้ด 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 เป็นชื่อ Sub . ของเรา . ขั้นตอน . เราประกาศชนิดของตัวแปร จากนั้น เราใช้ InputBox เพื่อให้ช่วงค่า หลังจากนั้นเราเลือก Outlook เป็นไคลเอนต์อีเมลของเรา

 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 ’ เพื่อส่งอีเมลของเรา

อ่านเพิ่มเติม: วิธีการส่งอีเมลอัตโนมัติจาก Excel ตามวันที่

การอ่านที่คล้ายกัน

  • วิธีดูว่าใครอยู่ในไฟล์ Excel ที่แชร์ (ด้วยขั้นตอนด่วน)
  • วิธีเปิดใช้งานการแชร์เวิร์กบุ๊กใน Excel
  • ส่งอีเมลเตือนความจำโดยอัตโนมัติจากแผ่นงาน Excel โดยใช้ VBA
  • วิธีการส่งอีเมลจำนวนมากจาก Outlook โดยใช้ Excel (3 วิธี)
  • วิธีการใช้มาโครเพื่อส่งอีเมลจาก Excel พร้อมไฟล์แนบ

3. ส่งอีเมลโดยอัตโนมัติด้วย Excel VBA เมื่อตรงตามเงื่อนไขหลายข้อ

ในวิธีนี้ เราจะใช้ VBA . อีกครั้ง มาโคร เพื่อส่งอีเมล แต่ในเวลานี้เมื่อหลายเงื่อนไขจะเป็นไปตามเท่านั้นข้อความจะถูกส่งไปยังลูกค้า มาดูขั้นตอนการส่งอีเมลโดยอัตโนมัติกัน

วิธีการส่งอีเมลโดยอัตโนมัติเมื่อตรงตามเงื่อนไขใน Excel

ขั้นตอน:

  • ในการเริ่มต้น ให้คลิกที่นักพัฒนา บนริบบิ้น
  • ขั้นที่สอง เปิดตัว Visual Basic Editor โดยคลิกที่ Visual Basic .
  • หรือคุณอาจเข้าถึง ตัวแก้ไข Visual Basic โดยกด 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 เพื่อรันโค้ด

วิธีการส่งอีเมลโดยอัตโนมัติเมื่อตรงตามเงื่อนไขใน Excel

  • A มาโคร กล่องโต้ตอบจะปรากฏขึ้นหลังจากนั้น หลังจากนั้น เลือก มาโคร . ที่เหมาะสม แล้วกดปุ่ม วิ่ง ปุ่ม.

วิธีการส่งอีเมลโดยอัตโนมัติเมื่อตรงตามเงื่อนไขใน Excel

  • ในทำนองเดียวกัน ในวิธีการก่อนหน้านี้ หากคุณเปิด Outlook และดูที่กล่องจดหมายของคุณ คุณจะเห็นอีเมลที่คุณเพิ่งส่งผ่าน VBA Macro จาก Excel

คำอธิบายโค้ด 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)

ที่นี่เราใช้สองขั้นตอนที่แตกต่างกัน ส่ง_Email_อัตโนมัติ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

จากนั้น เราเรียก Multiple_Conditions , ขั้นตอนย่อยครั้งที่สองของเรา . เราเลือก Outlook เป็นไคลเอนต์อีเมลของเรา จากนั้นในรหัสของเรา ให้ตั้งค่าเนื้อหาอีเมล การใช้ สิ่งที่แนบมา เรากำลังเพิ่มไฟล์ Excel ลงในอีเมล หลังจากนั้น เราใช้อีเมลของเราในการส่งด้วย '.Send ’.

อ่านเพิ่มเติม: วิธีการส่งอีเมลหากตรงตามเงื่อนไขใน Excel (วิธีง่ายๆ 3 วิธี)

บทสรุป

วิธีการข้างต้นจะช่วยให้คุณ ส่งอีเมลโดยอัตโนมัติเมื่อตรงตามเงื่อนไขใน Excel . หวังว่านี่จะช่วยคุณได้! หากคุณมีคำถามข้อเสนอแนะหรือข้อเสนอแนะโปรดแจ้งให้เราทราบในส่วนความคิดเห็น หรือดูบทความอื่นๆ ของเราได้ใน ExcelDemy.com บล็อก!

บทความที่เกี่ยวข้อง

  • วิธีการส่งอีเมลอัตโนมัติจาก Excel ไปยัง Outlook (4 วิธี)
  • วิธีการส่งอีเมลจาก Excel ด้วยเนื้อความโดยใช้มาโคร (ด้วยขั้นตอนง่ายๆ)
  • มาโคร Excel:ส่งอีเมลไปยังที่อยู่ในเซลล์ (2 วิธีง่ายๆ)
  • วิธีการส่งอีเมลหลายฉบับจากสเปรดชีต Excel (2 วิธีง่ายๆ)
  • มาโครเพื่อส่งอีเมลจาก Excel พร้อมเนื้อหา (3 กรณีที่เป็นประโยชน์)
  • วิธีส่งสเปรดชีต Excel ที่แก้ไขได้ทางอีเมล (วิธีด่วน 3 วิธี)