Visual Basic for Applications หรือ VBA เป็นภาษาการเขียนโปรแกรมที่ทรงพลังแต่ใช้งานง่าย และให้คุณทำให้ Microsoft Excel เป็นอัตโนมัติได้อย่างเต็มที่ การทำงานอัตโนมัติอย่างหนึ่งคือการใช้โค้ด VBA เพื่อผสานรวมแอปอื่นๆ ของ Microsoft เช่น Outlook, PowerPoint และ Word และเพิ่มประสิทธิภาพการทำงาน
การส่งอีเมลด้วย VBA ใน Excel เป็นหนึ่งในการผสานรวมที่ทำให้ชีวิตของคุณง่ายขึ้นโดยทำให้สเปรดชีตหรืองานส่งรายงานเป็นแบบอัตโนมัติ บทช่วยสอนนี้จะแนะนำขั้นตอนการส่งอีเมลด้วย VBA จาก Excel ในขั้นตอนที่ง่ายต่อการปฏิบัติตาม

การเปิดใช้งาน Microsoft Outlook Object Library
คุณต้องตั้งค่าการอ้างอิงวัตถุส่งอีเมลของ Outlook เนื่องจากเป็นวัตถุภายนอกสำหรับExcel VBA ทำตามขั้นตอนเหล่านี้:
- บันทึกไฟล์ Excel ที่มีอยู่เป็นไฟล์ที่เปิด ใช้งานมาโครโดยคลิกที่File > Save As > เลือกตำแหน่งและเปลี่ยนประเภท Save as
- กดAlt+F11เพื่อเปิดโปรแกรมแก้ไขโค้ด VBA และคลิกเครื่องมือที่อยู่บนแถบเมนูด้านบน

- จากนั้น ให้เลือกReferences จาก นั้นเลื่อน รายการ Available Referencesเพื่อค้นหาMicrosoft Outlook 16.0 Object Library
- เลือกวัตถุและคลิกตกลงเพื่อออกจากรายการข้อมูลอ้างอิงที่มีอยู่
การส่งอีเมลด้วย VBA: เขียนโค้ดและดำเนินการ
เมื่อคุณเปิดใช้งานวัตถุ Outlook ใน Excel VBA แล้ว ให้ทำตามขั้นตอนเหล่านี้เพื่อเขียนแมโคร Excel และดำเนินการดังกล่าว:
- ตรวจสอบว่าคุณใช้อินเทอร์เฟซตัวแก้ไขโค้ด VBA ตอนนี้ มองหา แท็บ แทรกบนเมนูด้านบนของ Excel VBA
- คลิกที่แทรกแล้วเลือกโมดูลเพื่อแทรกโมดูลที่คุณจะสามารถเขียนรหัส VBA
- ตอนนี้ ให้คัดลอกและวางสคริปต์ VBA ต่อไปนี้ลงในโมดูลที่สร้างขึ้นใหม่
Sub send_email_with_VBA() Dim EmailApp As Outlook.Application Dim Source As String Set EmailApp = Outlook.Application Dim EmailItem As Outlook.MailItem Set EmailItem = EmailApp.CreateItem(olMailItem) EmailItem.To = "[email protected]" EmailItem.CC = "[email protected]" EmailItem.BCC = "[email protected]" EmailItem.Subject = "สถานะการจัดส่งคำสั่งซื้อของลูกค้า" EmailItem.HTMLBody = "สวัสดีทีม" & vbNewLine & vbNewLine & "PFA สเปรดชีตสำหรับคำสั่งซื้อวันนี้ สถานะ" & _ vbNewLine & vbNewLine & _ "ขอแสดงความนับถือ" & vbNewLine & _ "Tamal Das" Source = ThisWorkbook.FullName EmailItem.Attachments.Add Source EmailItem.Send End Sub
รหัสที่กล่าวถึงข้างต้นจะส่งอีเมลโดยใช้บัญชี Outlook ของคุณไปยังที่อยู่อีเมลที่กล่าวถึงในรหัส
เนื้อหาอีเมลยังมีอยู่ในบรรทัดโค้ดEmailItem.HTMLBody ยิ่งไปกว่านั้น Excel VBA จะแนบสมุดงานต้นทางของคุณไปยังอีเมลเป็นไฟล์แนบโดยอัตโนมัติ
คุณอาจทำการเปลี่ยนแปลงต่อไปนี้เพื่อปรับแต่งที่อยู่และข้อความในอีเมล:
- แทนที่ที่อยู่อีเมลทั้งหมดภายในใบเสนอราคาด้วยรายชื่อติดต่อ Outlook ของคุณเอง
- ปรับแต่ง ข้อความ EmailItem.Subjectภายในใบเสนอราคาตามที่เห็นสมควร
- ใน โค้ด EmailItem.HTMLBodyคุณสามารถแทนที่ข้อความทั้งหมดภายในเครื่องหมายคำพูดโดยใช้เนื้อหาของคุณเอง
- ตอน นี้เรียกใช้สคริปต์ VBA โดยกดF5

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