จะส่งอีเมลใน Outlook ด้วย VBA ได้อย่างไร

อัปเดต: สิงหาคม 2564; ใช้ได้กับ Microsoft Outlook 365 / 2019 / 2016

นี่คือบันทึกที่เราได้รับจากผู้อ่าน

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

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

การเขียน VBA สำหรับส่งอีเมล Outlook

ในตัวอย่างที่ค่อนข้างง่ายด้านล่างนี้ เราจะกล่าวถึงขั้นตอนต่อไปนี้:

  1. ก่อนอื่น เราจะใช้โมเดลวัตถุ VBA Outlook เพื่อสร้างรายการอีเมลใหม่
  2. จากนั้นเราจะดำเนินการตั้งค่าความสำคัญของข้อความ ผู้รับ (คั่นด้วยเครื่องหมายเซมิโคลอน) และรูปแบบและเนื้อหาของข้อความ
  3. จากนั้น เราจะแสดงข้อความในแอปพลิเคชัน Microsoft Outlook ของคุณ
  4. สุดท้ายนี้ เราจะส่งต่อไปยังผู้รับ

นี่คือรหัส VBA อย่างง่ายสำหรับการสร้างและส่งอีเมลอย่างง่ายโดยอัตโนมัติ โปรดทราบว่าคุณต้องปรับปรุงสคริปต์นี้อย่างง่ายดายเพื่อรวมไฟล์แนบ งาน ฯลฯ 'แต่ให้เริ่มต้นด้วยสคริปต์พื้นฐาน

Sub SendMail()
Dim MyEmail As MailItem
Set MyEmail = Application.CreateItem(olMailItem)

With MyEmail
.To = ""
.Importance = olImportanceHigh
.Subject = ""
.Body = ""
.BodyFormat = olFormatHTML
.Display
End With

'I purposely commented the next line, uncomment it by removing the "'" sign to send your email.
' MyEmail.Send
End Sub

ทางลัดมาโคร Outlook VBA

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

นี่คือวิธีการ:

  1. ขั้นแรก ให้เปิด Microsoft Outlook
  2. กด ไฟล์ จากนั้นเลือก ตัวเลือก
  3. ตอนนี้ไปข้างหน้าและเลือกกำหนด Ribbon เอง
  4. ในส่วนกำหนด Ribbon เอง คุณจะสังเกตเห็นกล่องรายการ เลือกคำสั่งจาก
  5. เลือกมาโคร
  6. จากนั้นเลือกรหัส VBA ที่สร้างขึ้นใหม่ ในกรณีของเราชื่อควรเป็น SendMail
  7. จากนั้นกดเพิ่มแล้วตกลง หรือคุณอาจต้องการกำหนดไอคอนให้กับมาโครของคุณ
  8. Macro ของคุณจะพร้อมใช้งานในแถบเครื่องมือ Quick Access ที่ด้านซ้ายบนของแอปพลิเคชัน Outlook ของคุณ

ปัญหาที่เป็นไปได้กับการตั้งค่ามาโคร VBA

คุณอาจต้องปรับการตั้งค่ามาโคร Outlook เพื่อเรียกใช้มาโคร ถ้าเป็นเช่นนั้นนี่คือวิธีการทำเช่นนั้น

โบนัส: ส่งอีเมลจาก Outlook โดยใช้ PowerShell

ใน PowerShell คุณสามารถใช้ Send-MailMessage cmdlet เพื่อส่งอีเมล อย่างไรก็ตาม กำหนดให้คุณต้องตรวจสอบสิทธิ์กับเซิร์ฟเวอร์อีเมล และไม่สนับสนุนวิธีการตรวจสอบสิทธิ์สมัยใหม่ เช่น OAuth และ Microsoft Modern Authentication ดังนั้น การส่งอีเมลจึงง่ายกว่ามากหากคุณกำหนดค่าโปรไฟล์ Outlook ไว้ในคอมพิวเตอร์ของคุณ

นี่คือตัวอย่างของ สคริปต์ PowerShell ที่อ่านข้อมูลจากไฟล์ Excel และใช้โปรไฟล์ Outlook เพื่อส่งอีเมลไปที่ ผู้ใช้แต่ละคน:

# เปิดไฟล์ Excel
$ExcelObj = New-Object -comobject Excel.Application
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Sheet1")
# รับจำนวนแถวที่เติมในไฟล์ xlsx
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# วนซ้ำแถวทั้งหมดในคอลัมน์ 1 โดยเริ่มจากแถวที่สอง (เซลล์เหล่านี้ประกอบด้วยชื่อผู้ใช้และอีเมล)
สำหรับ($i=2;$i -le $rowcount;$i++){
$useremail = $ExcelWorkSheet.Columns.Item(1).Rows.Item($i).ข้อความ
$FullUsername =  $ExcelWorkSheet.Columns.Item(2).Rows.Item($i).ข้อความ
$Status =  $ExcelWorkSheet.Columns.Item(4).Rows.Item($i).ข้อความ
$pwdchange = $ExcelWorkSheet.Columns.Item(3).Rows.Item($i).ข้อความ
# สร้างเนื้อหาข้อความ
$strSubj = " สถานะบัญชีของคุณบนโดเมน woshub.com "
$strBody = "เรียน" + $FullUsername
$strBody = $strBody + " `r`n บัญชีของคุณในโดเมน woshub.com อยู่ใน " + $สถานะ
$strBody = $strBody + "`r`n วันที่และเวลาของการเปลี่ยนรหัสผ่านครั้งล่าสุดคือ : " +  $pwdchange
$strfile="C:\ps\" + $useremail + ".txt"
# เราถือว่า Outlook กำลังทำงานอยู่ หากไม่ใช่ คุณจะต้องเริ่มต้นด้วยคำสั่ง $outlook = new-object -comobject outlook.application
$outlook = [Runtime.InteropServices.Marshal]::GetActiveObject("Outlook.Application")
$email = $outlook.CreateItem(0)
$email.To = $useremail
$email.Subject = $strSubj
$email.Body =  $strBody
# แนบไฟล์ (หากจำเป็น)
$email.Attachments.add($strfile)
#ส่งข้อความอีเมล
$email.Send()

$ExcelWorkBook.close($true)

สคริปต์ PowerShell เพื่อส่งอีเมลจากโปรไฟล์ที่กำหนดค่า Outlook

สคริปต์ PowerShell นี้ถือว่า Outlook กำลังทำงานบนคอมพิวเตอร์ของคุณ สคริปต์จะสร้างหัวเรื่องและเนื้อหาของอีเมลสำหรับที่อยู่ SMTP ของผู้รับแต่ละรายในไฟล์ XLSX และแนบไฟล์ จากนั้นจึงส่งอีเมล


จะสร้างเทมเพลตอีเมลใน Microsoft Outlook.com 365 ได้อย่างไร

จะสร้างเทมเพลตอีเมลใน Microsoft Outlook.com 365 ได้อย่างไร

จะสร้างเทมเพลตอีเมลใน Microsoft Outlook.com 365 ได้อย่างไร

จะแก้ไขการระบายสีสัญลักษณ์แสดงหัวข้อย่อยใน Word ได้อย่างไร

จะแก้ไขการระบายสีสัญลักษณ์แสดงหัวข้อย่อยใน Word ได้อย่างไร

ในโพสต์นี้ คุณจะได้เรียนรู้วิธีแก้ไขรายการสัญลักษณ์แสดงหัวข้อย่อย / สีและขนาดของจุดใน Excel, PowerPoint และ Word 365 / 2016/ 2019

หยุดและลบข้อความอีเมลที่ซ้ำกันใน Outlook 2016 และ 2019

หยุดและลบข้อความอีเมลที่ซ้ำกันใน Outlook 2016 และ 2019

กล่องจดหมายของคุณเต็มไปด้วยรายการอีเมลที่ซ้ำกันหรือไม่ เรียนรู้วิธีหยุดรับและลบข้อความที่ซ้ำซ้อนในกล่องจดหมาย Outlook 365 / 2019 / 2016 ทั้งใน MAC และ Windows

วิธีเพิ่มรูปภาพ gif ในเนื้อหาอีเมลหรือลายเซ็นของ Outlook 2016/2019

วิธีเพิ่มรูปภาพ gif ในเนื้อหาอีเมลหรือลายเซ็นของ Outlook 2016/2019

เรียนรู้วิธีเพิ่ม / ฝังและส่งภาพ gif ไปยังอีเมลขาออก Outlook 2016 และ 2019

จะรีเฟรชกล่องจดหมาย Outlook ของฉันได้อย่างไรเมื่อไม่ได้อัปเดตโดยอัตโนมัติ

จะรีเฟรชกล่องจดหมาย Outlook ของฉันได้อย่างไรเมื่อไม่ได้อัปเดตโดยอัตโนมัติ

กล่องจดหมาย Outlook ไม่อัปเดตโดยอัตโนมัติใช่ไหม เรียนรู้วิธีรีเฟรชกล่องจดหมาย Outlook 365 / 2019 / 2016 / 2013 ของคุณโดยอัตโนมัติโดยอัตโนมัติ

จะส่งอีเมลใน Outlook ด้วย VBA ได้อย่างไร

จะส่งอีเมลใน Outlook ด้วย VBA ได้อย่างไร

เรียนรู้การเขียนมาโคร Outlook เพื่อส่งอีเมลอัตโนมัติ

เหตุใด Outlook จึงออฟไลน์หรือถูกตัดการเชื่อมต่อ และจะเชื่อมต่อใหม่ได้อย่างไร

เหตุใด Outlook จึงออฟไลน์หรือถูกตัดการเชื่อมต่อ และจะเชื่อมต่อใหม่ได้อย่างไร

เรียนรู้วิธีวินิจฉัยและแก้ไขปัญหาการตัดการเชื่อมต่อไคลเอ็นต์ Microsoft Outlook ต่างๆ ใน ​​Windows 10

แบบฟอร์ม Outlook: วิธีสร้างแบบฟอร์มที่กรอกได้ใน Microsoft Office 2016 / 2019

แบบฟอร์ม Outlook: วิธีสร้างแบบฟอร์มที่กรอกได้ใน Microsoft Office 2016 / 2019

เรียนรู้วิธีที่คุณสามารถออกแบบและสร้างฟอร์มผู้ใช้แบบกำหนดเองของ Outlook

หยุดการแจ้งเตือนปฏิทิน Outlook 365 / 2019 / 2016 สำหรับการประชุมและการนัดหมายจากป๊อปอัป

หยุดการแจ้งเตือนปฏิทิน Outlook 365 / 2019 / 2016 สำหรับการประชุมและการนัดหมายจากป๊อปอัป

เรียนรู้วิธีปิดใช้งานตัวเตือนและการแจ้งเตือนจากปฏิทิน Outlook 2016/2019 ทั้งใน Windows และ MAC

จะทำให้ Microsoft Outlook ทำงานเร็วขึ้นได้อย่างไร (เวอร์ชั่น 2019 / 365/ 2016)

จะทำให้ Microsoft Outlook ทำงานเร็วขึ้นได้อย่างไร (เวอร์ชั่น 2019 / 365/ 2016)

เรียนรู้วิธีปรับปรุงประสิทธิภาพ Outlook ของคุณ