กำลังมองหาวิธี จดหมายเวียน ใน Excel ไม่มี Word ? นี่คือสถานที่ที่เหมาะสำหรับคุณ ถ้า Microsoft Word ไม่สามารถใช้ได้ด้วยเหตุผลบางประการ กำลัง จดหมายเวียน จะยุ่งยาก แต่ก็ใช่ว่าจะเป็นไปไม่ได้ เพราะเป็น Word ไม่จำเป็นสำหรับการดำเนินการ จดหมายเวียน การดำเนินงาน ในบทความนี้เราจะแสดงให้คุณเห็น 2 มาโคร VBA ไปที่ จดหมายเวียน ใน Excel ไม่มี Word .
จดหมายเวียน
เมื่อมีคนหรือบริษัทบางแห่งต้องการส่งอีเมลจำนวนมากโดยมีการแก้ไขเล็กน้อย (เช่น ชื่อ ที่อยู่อีเมลของผู้รับ หรือที่อยู่ของผู้รับ) จากนั้นผู้ที่เกี่ยวข้องสามารถสร้างเทมเพลตและฟิลด์ที่แก้ไขได้เพื่อตอบสนองความต้องการ เรารู้จักเทมเพลตประเภทนี้ในฐานะ จดหมายเวียน .
วิธีนี้ช่วยประหยัดเวลาโดยรวม เป็นเรื่องปกติที่จะทำงานนี้ผ่าน Word โปรเซสเซอร์ (เช่น Microsoft Word , Google เอกสาร เป็นต้น) WordStar เปิดตัวคุณลักษณะนี้ครั้งแรกในช่วงต้น 80 . หลังจากนั้น คนอื่นๆ ก็ได้นำคุณลักษณะที่มีประโยชน์อย่างยิ่งนี้มาใช้
โดยทั่วไปแล้วต้องปฏิบัติตาม 5 ขั้นตอนหลักของ จดหมายเวียน การดำเนินงาน:
- ประการแรก เอกสารต้นฉบับ .
- ประการที่สอง แหล่งข้อมูล .
- ประการที่สาม ฟิลด์ เพื่อป้อนข้อมูล
- จากนั้น การรวม พร้อมเอกสารต้นฉบับ .
- สุดท้าย บันทึก หรือ ส่ง อีเมล .
2 วิธีที่สะดวกสำหรับ Mail Merge ใน Excel โดยไม่ต้องใช้ Word
ในฐานะ Microsoft Word เป็น Word ที่โดดเด่นที่สุด โปรเซสเซอร์ของเราส่วนใหญ่เชื่อมโยง Word เมื่อเราได้ยินข้อความ “จดหมายเวียน ” อย่างไรก็ตาม เราจะทำอย่างอื่นโดยใช้เพียง Microsoft Excel เพื่อดำเนินการ จดหมายเวียน . ดังนั้น อ่านบทความนี้เพื่อทราบรายละเอียดเพิ่มเติม
ยิ่งไปกว่านั้น เราจะใช้ชุดข้อมูลสองชุดเพื่อสาธิตมาโครของเรา จากชุดข้อมูลแรกมีคอลัมน์ต่อไปนี้:“ชื่อ ","อีเมล ที่อยู่ ","เมือง ” และ “ถนน ที่อยู่ ” เราจะเห็นชุดข้อมูลหลังในวิธีที่สองของบทความนี้ นอกจากนี้ ด้วยเหตุผลด้านความเป็นส่วนตัว เราได้ทำขึ้น 3 ที่อยู่อีเมลสำหรับชุดข้อมูลของเราและอันสุดท้ายเป็นของผู้เขียนบทความนี้ ซึ่งเราจะใช้เพื่อยืนยันว่าเราส่งอีเมลได้โดยไม่มีปัญหาใดๆ
1. Mail Merge เพื่อส่งอีเมลอัตโนมัติใน Excel
สำหรับวิธีแรก เวิร์กชีต ของเรา ชื่อ “VBA1 ” เราจะแทรก VBA รหัสที่มีสอง ขั้นตอนย่อย โดยใช้ โมดูล . เดียว ไปที่ จดหมายเวียน ใน Excel ไม่มี Word . จากนั้น เราจะเรียกใช้รหัสนี้ ซึ่งจะส่งอีเมลโดยอัตโนมัติไปยังลูกค้าที่อยู่ในรายการโดยใช้เทมเพลตที่กำหนดไว้ล่วงหน้าของเรา ก่อนที่จะทำทั้งหมดนั้น ให้เราแสดงวิธีเรียกใช้ โมดูล หน้าต่างและพิมพ์ VBA รหัส.
ขั้นตอน:
- ประการแรก จาก นักพัฒนา แท็บ>>> เลือก Visual Basic .
- หรือจะกด ALT + F11 . ก็ได้ เพื่อแสดง VBA หน้าต่าง .
- ประการที่สอง จาก แทรก >>> เลือก โมดูล .
- ดังนั้น นี่จะแสดง โมดูล หน้าต่างที่เราพิมพ์ VBA รหัส.
- ถัดไป พิมพ์รหัสต่อไปนี้ใน โมดูล หน้าต่าง
Option Explicit
Sub Mail_Merge_Only_Excel()
Dim xSheet As Worksheet
Dim mAddress As String, mSubject As String, eName As String, _
eLocation As String, eCity As String
Dim eRow As Long, x As Long
Set xSheet = ThisWorkbook.Sheets("VBA1") 'WorkSheet Name
With xSheet
eRow = .Cells(.Rows.Count, 5).End(xlUp).Row
For x = 5 To eRow 'Specific Row to Row to Last Row
mAddress = .Cells(x, 3)
mSubject = "Thank You for Your Loyalty"
eName = .Cells(x, 2)
eCity = .Cells(x, 4)
eLocation = .Cells(x, 5)
Call Mail_Merge_Only_Excel_Send_Mail(mAddress, mSubject, _
eName, eLocation, eCity)
Next x
End With
End Sub
Sub Mail_Merge_Only_Excel_Send_Mail(mAddress As String, mSubject As String, _
eName As String, eLocation As String, eCity As String)
Dim pApp As Object
Dim pMail As Object
Set pApp = CreateObject("Outlook.Application")
Set pMail = pApp.CreateItem(0)
With pMail
.To = mAddress
.CC = ""
.BCC = ""
.Subject = mSubject
.Body = "Mr./Mrs. " & eName & vbNewLine & eCity & vbNewLine & eLocation & _
vbNewLine & vbNewLine & "Hello! " _
& "You are one of the most precious customers to us for the last quarter. " _
& "As a token of appreciation, we are sending you 20$ coupon code for your " _
& "next purchase at ExcelDemy. " _
& "Use the coupon code 'ExcelDemy20' to avail of this discount." _
& vbNewLine & "From," & vbNewLine & "ExcelDemy Team"
.Send
End With
Set pMail = Nothing
Set pApp = Nothing
End Sub
รายละเอียดโค้ด VBA
- ประการแรก เรากำลังเรียกใช้ขั้นตอนย่อย “Merge_Only_Excel ”.
- ประการที่สอง เรากำลังประกาศประเภทตัวแปรและการตั้งค่า “VBA1 ” เป็น ใบงาน . ของเรา .
- จากนั้น จะพบหมายเลขแถวสุดท้าย นอกจากนี้ ค่าของเราเริ่มจากแถว 5 ดังนั้นเราจึงใส่แถว 5 ไปที่แถวสุดท้ายในโค้ดของเรา
- จากนั้นเรียก ขั้นตอนย่อยที่สองของเรา “Mail_Merge_Only_Excel_Send_Mail ”.
- หลังจากนั้น เรากำลังเลือก Outlook เป็น แอปพลิเคชันอีเมล . ของเรา .
- จากนั้น เนื้อหาอีเมลจะถูกตั้งค่าในโค้ดของเรา นอกจากนี้ เราใช้ vbNewLine เพื่อแทรกบรรทัดว่างลงในเนื้อหาอีเมล
- หลังจากนั้น “.ส่ง ” ใช้ที่นี่เพื่อส่งอีเมลของเรา เลยไม่ต้องกด ส่ง ด้วยตนเองเพื่อส่งอีเมล นอกจากนี้เรายังสามารถใช้ “.Display ” เพื่อแสดงอีเมลโดยไม่ต้องส่ง
- หลังจากนั้น บันทึก โมดูล .
- จากนั้น ให้วางเคอร์เซอร์ไว้ใน ขั้นตอนย่อย . แรก แล้วกด เรียกใช้ .
- ตอนนี้ ถ้าคุณไม่ได้เข้าสู่ระบบ Outlook แอพเมล จากนั้นคุณจะถูกขอให้ป้อนข้อมูลรับรองการเข้าสู่ระบบของคุณ เราได้เข้าสู่ระบบแล้ว จดหมายของเราจะถูกส่งโดยไม่มีขั้นตอนเพิ่มเติม
- สุดท้าย สแนปชอตนี้แสดง จดหมายเวียน ทำงานได้ตามที่ตั้งใจไว้และสามารถทำงานได้โดยใช้ Excel ไม่มี Word .
อ่านเพิ่มเติม:วิธีการรวมจดหมายจาก Excel ไปยัง Outlook (ด้วยขั้นตอนง่ายๆ)
2. จดหมายเวียนจากส่วนที่เลือกใน Excel โดยไม่ต้องใช้ Word
สำหรับวิธีสุดท้าย เราได้เปลี่ยนชุดข้อมูลเล็กน้อย มีสามคอลัมน์ประกอบด้วย “ชื่อ ","อีเมล ที่อยู่ ” และ “ข้อความ ” เราจะใช้ VBA . อื่น รหัสเพื่อดำเนินการ จดหมายเวียน ใน Excel เท่านั้น. ครั้งนี้ เราจะใช้ เมธอด InputBox เพื่อเลือกที่อยู่อีเมลและข้อความที่จะส่ง นอกจากนี้ เราจะแสดงเฉพาะ จดหมายเวียน การดำเนินงาน แอปพลิเคชัน Outlook และส่งด้วยตนเองโดยคลิกที่ปุ่ม เนื้อหาอีเมลของเราเหมือนกันสำหรับลูกค้าทุกคน เพื่อไม่ให้เป็นการเสียเวลา เรามาเริ่มกันเลย
ขั้นตอน:
- ประการแรก ตามที่แสดงในวิธีแรก , เรียก โมดูล หน้าต่างและพิมพ์รหัสนี้
Public Sub Mail_Merge_Without_Word_Input_Box()
'Declare the variables
Dim XRcptsEmail As Range
Dim xMailContent As Range
Dim xRngDn As Range
Dim xCrtOut As Object
Dim xValSendRng As String
Dim k As Long
Dim xMailSections As Object
Dim xFinalRw As Long
Dim CrVbLf As String
Dim xMsg As String
On Error Resume Next
'Insert a input box for selecting the recipients
Set XRcptsEmail = Application.InputBox("Choose the column for the email" _
& "addresses of the recipients:", "ExcelDemy", , , , , , 8)
If XRcptsEmail Is Nothing Then Exit Sub
'To enter the text mail, insert a input box
Set xMailContent = Application.InputBox("In your email," _
& "choose the column with the text:", "ExcelDemy", , , , , , 8)
If xMailContent Is Nothing Then Exit Sub
'Count rows for the recipient email
xFinalRw = XRcptsEmail.Rows.Count
Set XRcptsEmail = XRcptsEmail(1)
Set xMailContent = xMailContent(1)
'Set command to open MS Outlook Application
Set xCrtOut = CreateObject("Outlook.Application")
'Apply For loop to conduct the operation in each row one by one
For k = 1 To xFinalRw
xValSendRng = Cells(XRcptsEmail.Offset(k - 1).Row, _
XRcptsEmail.Offset(k - 1).Column - 1)
'Create the subject, body and text contents with the required variables
CrVbLf = "<br><br>"
xMsg = "<HTML><BODY>"
xMsg = xMsg & "Dear " & xValSendRng & CrVbLf
xMsg = xMsg & "" & xMailContent.Value & CrVbLf
xMsg = xMsg & "</BODY></HTML>"
'Create the email
Set xMailSections = xCrtOut.CreateItem(0)
'Define the position to place the Subject, Body and Recipients Address
With xMailSections
.Subject = "Congratulations!!!"
xValSendRng = Cells(XRcptsEmail.Offset(k - 1).Row, _
XRcptsEmail.Offset(k - 1).Column)
.To = xValSendRng
.HTMLBody = xMsg
.Display
End With
Set xMailSections = Nothing
Next
Set xCrtOut = Nothing
End Sub
รายละเอียดโค้ด VBA
- เริ่มต้นด้วย เราเรียก ขั้นตอนย่อย Mail_Merge_Without_Word_Input_Box .
- ประการที่สอง เรากำลังประกาศประเภทตัวแปร
- หลังจากนั้น เราใช้ InputBox . สองตัว เพื่อรับที่อยู่อีเมลและเนื้อหาของอีเมล
- จากนั้นก็นับเลขแถว
- ต่อไป เราใช้ For Next Loop เพื่อผ่านแถวทั้งหมดตามลำดับและใช้ VBA Offset ทรัพย์สิน เราแยกชื่อลูกค้าจาก 1 คอลัมน์ด้านซ้าย
- สุดท้าย เราใช้ วิธีการแสดง เพื่อดูตัวอย่างอีเมล อีกวิธีหนึ่งคือ เราสามารถใช้ วิธีการส่ง เพื่อส่งอีเมลด้วย
- หลังจากนั้น บันทึก โมดูล .
- จากนั้น ให้วางเคอร์เซอร์ไว้ใน ขั้นตอนย่อย . แรก แล้วกด เรียกใช้ .
- ดังนั้น รหัสของเราจะดำเนินการและจะขอให้เราเลือกที่อยู่อีเมลและเนื้อหาของอีเมล
- ถัดไป เลือกช่วงเซลล์ C5:C8 ตามที่อยู่อีเมล แล้วกด ตกลง .
- หลังจากนั้น เลือกเนื้อหาอีเมลที่อยู่ในเซลล์ D5 แล้วกด ตกลง .
- หลังจากนั้นจะแสดงให้เราเห็น 4 หน้าต่างของแอปพลิเคชัน Outlook .
- สุดท้ายเราสามารถกด ส่ง เพื่อส่งต่ออีเมลนี้
- นี่คือสิ่งที่ จดหมายเวียนที่ประสบความสำเร็จ เอาต์พุตโดยใช้ VBA . นี้ รหัสจะมีลักษณะดังนี้
อ่านเพิ่มเติม:วิธีการรวมจดหมายจาก Excel ไปยัง Outlook พร้อมไฟล์แนบ (2 ตัวอย่าง)
ภาคปฏิบัติ
เราได้เพิ่มชุดข้อมูลการปฏิบัติสำหรับแต่ละวิธีใน Excel ไฟล์. ดังนั้นคุณสามารถทำตามวิธีการของเราได้อย่างง่ายดาย
บทสรุป
เราได้แสดงให้คุณเห็นแล้ว 2 มาโคร VBA ไปที่ จดหมายเวียน ใน Excel ไม่มี Word . หากคุณประสบปัญหาเกี่ยวกับวิธีการเหล่านี้หรือมีข้อเสนอแนะใด ๆ โปรดแสดงความคิดเห็นด้านล่าง นอกจากนี้ คุณสามารถเยี่ยมชมไซต์ของเรา ExcelDemy สำหรับที่เกี่ยวข้องกับ Excel . เพิ่มเติม บทความ ขอบคุณสำหรับการอ่าน ยอดเยี่ยมต่อไป!
บทความที่เกี่ยวข้อง
- มาโครเพื่อเติมเอกสารจดหมายเวียนจาก Excel
- วิธีการเปลี่ยนรูปแบบวันที่ในจดหมายเวียนของ Excel (พร้อมขั้นตอนด่วน)
- วิธีการผสานไฟล์ Excel เข้ากับป้ายกำกับการส่งจดหมาย (ด้วยขั้นตอนง่ายๆ)
- จดหมายผสานจาก Excel ไปยัง Word Envelopes (2 วิธีง่ายๆ)
- วิธีการส่งจดหมายเวียนรูปภาพจาก Excel ไปยัง Word (2 วิธีง่ายๆ)