Computer >> คอมพิวเตอร์ >  >> ซอฟต์แวร์ >> จดหมาย

วิธีการส่งอีเมลจากสเปรดชีต Excel โดยใช้สคริปต์ VBA

ในการส่งอีเมลจาก Microsoft Excel ต้องใช้สคริปต์ง่ายๆ เพียงไม่กี่ข้อเท่านั้น เพิ่มฟังก์ชันนี้ลงในสเปรดชีตของคุณ และคุณสามารถปรับปรุงประสิทธิภาพใน Excel ได้อย่างแท้จริง

เราได้กล่าวถึงมาโคร Excel ที่ยอดเยี่ยมมากมาย ซึ่งสามารถทำสิ่งเดียวกันกับสคริปต์ VBA ได้ แต่ไม่จำเป็นต้องมีความรู้ด้านการเขียนโปรแกรม แต่มีหลายสิ่งที่คุณทำได้ด้วย VBA ขั้นสูง เช่น การสร้างรายงานสเปรดชีตที่มีข้อมูลพีซีทั้งหมดของคุณ

ต้องการดูบทแนะนำนี้เป็นวิดีโอหรือไม่ เราพร้อมดูแลคุณแล้ว!

เหตุใดจึงส่งอีเมลจาก Excel

มีสาเหตุหลายประการที่คุณอาจต้องการส่งอีเมลจากภายใน Microsoft Excel

บางทีคุณอาจมีพนักงานที่อัปเดตเอกสารหรือสเปรดชีตเป็นประจำทุกสัปดาห์ และต้องการรับการแจ้งเตือนทางอีเมลเมื่อการอัปเดตเหล่านั้นเสร็จสิ้น หรือคุณอาจมีสเปรดชีตรายชื่อติดต่อและต้องการส่งอีเมลหนึ่งฉบับถึงทุกคนพร้อมกัน

คุณอาจคิดว่าการเขียนสคริปต์การออกอากาศอีเมลจาก Excel จะซับซ้อน ไม่ได้เป็นเช่นนั้นเลย

เทคนิคในบทความนี้จะใช้ประโยชน์จากฟีเจอร์ที่มีใน Excel VBA มาเป็นเวลานาน ออบเจ็กต์ข้อมูลการทำงานร่วมกัน (CDO)

วิธีการส่งอีเมลจากสเปรดชีต Excel โดยใช้สคริปต์ VBA

CDO เป็นองค์ประกอบการส่งข้อความที่ใช้ใน Windows ตั้งแต่ระบบปฏิบัติการรุ่นแรกๆ มันเคยถูกเรียกว่า CDONTS จากนั้นเมื่อมีการถือกำเนิดของ Windows 2000 และ XP ถูกแทนที่ด้วย "CDO สำหรับ Windows 2000" คอมโพเนนต์นี้รวมอยู่ในการติดตั้ง VBA ของคุณใน Microsoft Word หรือ Excel แล้วและพร้อมใช้งาน

การใช้องค์ประกอบทำให้การส่งอีเมลจากภายในผลิตภัณฑ์ Windows ด้วย VBA ทำได้ง่ายมาก ในตัวอย่างนี้ คุณจะใช้คอมโพเนนต์ CDO ใน Excel เพื่อส่งอีเมลที่จะส่งผลจากเซลล์ Excel ที่ระบุ

ขั้นตอนที่ 1:สร้างมาโคร VBA

ขั้นตอนแรกคือไปที่แท็บนักพัฒนา Excel

ในแท็บนักพัฒนา ให้คลิกที่ แทรก ในกล่องตัวควบคุม จากนั้นเลือกปุ่มคำสั่ง

วิธีการส่งอีเมลจากสเปรดชีต Excel โดยใช้สคริปต์ VBA

วาดลงในแผ่นงานแล้วสร้างมาโครใหม่โดยคลิกที่ มาโคร ในริบบอนนักพัฒนา

วิธีการส่งอีเมลจากสเปรดชีต Excel โดยใช้สคริปต์ VBA

เมื่อคุณคลิก สร้าง ปุ่มจะเป็นการเปิดโปรแกรมแก้ไข VBA

เพิ่มการอ้างอิงไปยังไลบรารี CDO โดยไปที่ เครื่องมือ> ข้อมูลอ้างอิง ในตัวแก้ไข

วิธีการส่งอีเมลจากสเปรดชีต Excel โดยใช้สคริปต์ VBA

เลื่อนลงมาตามรายการจนกว่าคุณจะพบ Microsoft CDO for Windows 2000 Library . ทำเครื่องหมายที่ช่องทำเครื่องหมายแล้วคลิก ตกลง .

วิธีการส่งอีเมลจากสเปรดชีต Excel โดยใช้สคริปต์ VBA

เมื่อคุณคลิก ตกลง ให้จดชื่อฟังก์ชันที่คุณวางสคริปต์ คุณจะต้องใช้ในภายหลัง

ขั้นตอนที่ 2:ตั้งค่าฟิลด์ "จาก" และ "ถึง" ของ CDO

ในการดำเนินการนี้ คุณต้องสร้างวัตถุเมลและตั้งค่าฟิลด์ทั้งหมดที่จำเป็นในการส่งอีเมล

โปรดทราบว่าแม้ช่องจำนวนมากจะเป็นตัวเลือก จาก และ ถึง ต้องระบุข้อมูล

Dim CDO_Mail As Object
Dim CDO_Config As Object
Dim SMTP_Config As Variant
Dim strSubject As String
Dim strFrom As String
Dim strTo As String
Dim strCc As String
Dim strBcc As String
Dim strBody As String
strSubject = "Results from Excel Spreadsheet"
strFrom = "rdube02@gmail.com"
strTo = "rdube02@gmail.com"
strCc = ""
strBcc = ""
strBody = "The total results for this quarter are: " & Str(Sheet1.Cells(2, 1))

สิ่งที่ยอดเยี่ยมเกี่ยวกับเรื่องนี้ก็คือ คุณสามารถสร้างสตริงใดๆ ที่คุณต้องการปรับแต่งข้อความอีเมลแบบเต็มและกำหนดให้กับ strBody ตัวแปร

รวมส่วนประกอบของข้อความโดยใช้ & เพื่อแทรกข้อมูลจากแผ่นงาน Microsoft Excel ลงในข้อความอีเมล เช่นเดียวกับที่แสดงด้านบน

ขั้นตอนที่ 3:กำหนดค่า CDO เพื่อใช้ SMTP ภายนอก

ส่วนถัดไปของรหัสคือที่ที่คุณจะกำหนดค่า CDO ให้ใช้เซิร์ฟเวอร์ SMTP ภายนอกเพื่อส่งอีเมล

ตัวอย่างนี้เป็นการตั้งค่าที่ไม่ใช่ SSL ผ่าน Gmail CDO สามารถใช้ SSL ได้ แต่นั่นอยู่นอกเหนือขอบเขตของบทความนี้ หากคุณต้องการใช้ SSL โค้ดขั้นสูงนี้ใน Github ช่วยคุณได้

Set CDO_Mail = CreateObject("CDO.Message")
On Error GoTo Error_Handling
Set CDO_Config = CreateObject("CDO.Configuration")
CDO_Config.Load -1
Set SMTP_Config = CDO_Config.Fields
With SMTP_Config
.Item("https://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("https://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("https://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("https://schemas.microsoft.com/cdo/configuration/sendusername") = "email@website.com"
.Item("https://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"
.Item("https://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Item("https://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Update
End With
With CDO_Mail
Set .Configuration = CDO_Config
End With

ขั้นตอนที่ 4:ตั้งค่า CDO ให้เสร็จสิ้น

เมื่อคุณได้กำหนดค่าการเชื่อมต่อกับเซิร์ฟเวอร์ SMTP สำหรับการส่งอีเมลแล้ว สิ่งที่คุณต้องทำคือกรอกข้อมูลในฟิลด์ที่เหมาะสมสำหรับ วัตถุ CDO_Mail และออก ส่ง คำสั่ง

นี่คือวิธีที่คุณทำ:

CDO_Mail.Subject = strSubject
CDO_Mail.From = strFrom
CDO_Mail.To = strTo
CDO_Mail.TextBody = strBody
CDO_Mail.CC = strCc
CDO_Mail.BCC = strBcc
CDO_Mail.Send
Error_Handling:
If Err.Description <> "" Then MsgBox Err.Description

จะไม่มีกล่องป๊อปอัปหรือข้อความแจ้งเตือนความปลอดภัย ซึ่งสามารถเกิดขึ้นได้เมื่อคุณหันไปใช้วัตถุเมล Outlook

CDO รวบรวมอีเมลและใช้รายละเอียดการเชื่อมต่อเซิร์ฟเวอร์ SMTP ของคุณเพื่อปิดข้อความ เป็นวิธีที่ง่ายที่สุดในการรวมอีเมลไว้ในสคริปต์ Microsoft Word หรือ Excel VBA

หากต้องการเชื่อมต่อปุ่มคำสั่งกับสคริปต์นี้ ให้ไปที่โปรแกรมแก้ไขโค้ดแล้วคลิก Sheet1 เพื่อดูโค้ด VBA สำหรับเวิร์กชีตนั้น

พิมพ์ชื่อฟังก์ชันที่คุณวางสคริปต์ด้านบน

วิธีการส่งอีเมลจากสเปรดชีต Excel โดยใช้สคริปต์ VBA

นี่คือข้อความที่ฉันได้รับในกล่องจดหมาย:

วิธีการส่งอีเมลจากสเปรดชีต Excel โดยใช้สคริปต์ VBA

หมายเหตุ :หากคุณได้รับข้อผิดพลาดที่อ่านว่า การขนส่งล้มเหลวในการเชื่อมต่อกับเซิร์ฟเวอร์ ตรวจสอบให้แน่ใจว่าคุณได้ป้อนชื่อผู้ใช้ รหัสผ่าน เซิร์ฟเวอร์ SMTP และหมายเลขพอร์ตที่ถูกต้องในบรรทัดของรหัสที่แสดงด้านล่าง ด้วย SMTP_Config .

ก้าวต่อไปและทำให้กระบวนการทั้งหมดเป็นอัตโนมัติ

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

ในการดำเนินการดังกล่าว คุณจะต้องทำการเปลี่ยนแปลงมาโคร ไปที่ Visual Basic Editor แล้วคัดลอกและวางโค้ดทั้งหมดที่เรารวบรวม

จากนั้นเลือก สมุดงานนี้ จาก โครงการ ลำดับชั้น

จากช่องดรอปดาวน์สองช่องที่ด้านบนของหน้าต่างโค้ด ให้เลือก สมุดงาน แล้วเลือก เปิด จากดรอปดาวน์วิธีการ

วางสคริปต์อีเมลด้านบนลงใน Private Sub Workbook_Open() .

การดำเนินการนี้จะเรียกใช้มาโครทุกครั้งที่คุณเปิดไฟล์ Excel

วิธีการส่งอีเมลจากสเปรดชีต Excel โดยใช้สคริปต์ VBA

ต่อไป เปิด ตัวกำหนดเวลางาน .

คุณจะใช้เครื่องมือนี้เพื่อขอให้ Windows เปิดสเปรดชีตโดยอัตโนมัติตามช่วงเวลา ซึ่งแมโครของคุณจะเริ่มทำงานโดยการส่งอีเมล

วิธีการส่งอีเมลจากสเปรดชีต Excel โดยใช้สคริปต์ VBA

เลือก สร้างงานพื้นฐาน... จาก การกระทำ เมนูและดำเนินการตามวิซาร์ดจนกว่าจะถึง การดำเนินการ หน้าจอ

เลือก เริ่มโปรแกรม และคลิก ถัดไป .

วิธีการส่งอีเมลจากสเปรดชีต Excel โดยใช้สคริปต์ VBA

ใช้ เรียกดู เพื่อค้นหาตำแหน่งของ Microsoft Excel บนคอมพิวเตอร์ของคุณ หรือคัดลอกและวางเส้นทางลงใน โปรแกรม/สคริปต์ สนาม

จากนั้น ป้อนเส้นทางไปยังเอกสาร Microsoft Excel ของคุณใน เพิ่มอาร์กิวเมนต์ สนาม

ทำตามวิซาร์ดให้เสร็จสิ้น และการจัดกำหนดการของคุณก็จะเข้าที่

ควรทำการทดสอบโดยกำหนดเวลาการดำเนินการสองสามนาทีในอนาคต จากนั้นแก้ไขงานเมื่อคุณยืนยันได้ว่าใช้งานได้

หมายเหตุ :คุณอาจต้องปรับการตั้งค่าศูนย์ความเชื่อถือเพื่อให้แน่ใจว่ามาโครทำงานอย่างถูกต้อง

ในการดำเนินการดังกล่าว ให้เปิดสเปรดชีตและไปที่ไฟล์> ตัวเลือก> ศูนย์ความเชื่อถือ .

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

ทำให้ Microsoft Excel ทำงานแทนคุณ

Microsoft Excel เป็นเครื่องมือที่ทรงพลังอย่างเหลือเชื่อ แต่การเรียนรู้วิธีใช้งานให้เกิดประโยชน์สูงสุดอาจเป็นเรื่องที่น่ากลัวเล็กน้อย หากคุณต้องการเชี่ยวชาญซอฟต์แวร์อย่างแท้จริง คุณจะต้องคุ้นเคยกับ VBA และนั่นก็ไม่ใช่เรื่องเล็ก

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

ต้องใช้เวลาในการสร้างความเชี่ยวชาญกับ VBA แต่ในไม่ช้าคุณจะเห็นผลงานของคุณหากคุณสามารถยึดติดกับมันได้

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