ใช้ชุดข้อมูลที่มีอีเมลผู้ต่างๆ พร้อม Deadline ที่ต้องปฏิบัติ ตั้งค่าแจ้งเตือนอีเมลอัตโนมัติตามวันที่

วิธีที่ 1 – ใช้ Power Automate สร้าง Automatic Email Alerts
ขั้นตอนที่ 1 – เตรียมชุดข้อมูล
- ใช้ชุดข้อมูลที่กล่าวมา
- ส่งอีเมลอัตโนมัติตาม Deadline

- เลือกเซลล์ใดในชุดข้อมูล กด Ctrl + T
- กล่อง Create Table แสดง ช่วง = ช่วงข้อมูล
- กด OK สร้างตาราง

- บันทึกไฟล์ Excel บน OneDrive for Business หรือ SharePoint
- เปิดแอป Microsoft 365

ขั้นตอนที่ 2 – เปิด Power Automate
- คลิกไอคอนมุมซ้ายบน (9 จุด)

หมายเหตุ: ไม่ทำงานกับ OneDrive Personal ต้องมีบัญชี Microsoft 365
- คลิก All apps ดูรายการแอป

- เลือก Power Automate

- ใน Power Automate คลิก Create > Scheduled Cloud Flow

- ตั้งชื่อ Flow (เช่น Automated Email Alert)
- ต้องการส่งทุกวัน เลือก Repeat every 1 Day
- คลิก Create

ขั้นตอนที่ 3 – เชื่อม Power Automate กับ Excel
- มี Step เดียวคือ Recurrence
- คลิก New Step เพิ่มขั้นตอน

- เลือก List rows present in a table จาก Actions (หรือค้นหา)

- คลิก dropdown Location เลือก OneDrive for Business

- เลือก OneDrive สำหรับ Document Library

- ไปที่ตำแหน่งไฟล์ เลือกไฟล์

- เลือกชื่อตารางที่มีข้อมูล (ใช้ Table 1)

- คลิก Show Advanced Options

- ใน Filter Query ใส่:
Deadline eq' - คลิก Add dynamic content จะมี Wizard ขึ้นมา
- ไปแท็บ Expression ใส่สูตร:
formatDateTime(convertFromUTC(utcNow(),'Central America Standard Time'),'yyyy-MM-dd')

จัดรูปแบบคอลัมน์ Deadline ให้เป็น Central America Standard Time
- ปิดด้วย
'

- ตั้ง DateTime Format = ISO 8601

ขั้นตอนที่ 4 – ดึงรายการอีเมล
- เลือก Next step ค้นหา select เลือก Select: Data Operation

- คลิก Add dynamic content เลือก Value

- คลิกไอคอน Text หลังเลือก Map

- ค้นหา Email เลือก Email

ขั้นตอนที่ 5 – Compose รายการอีเมล
- เพิ่ม Step ค้นหา Compose เลือก Compose

- คลิก Add dynamic content ในแท็บ Expression ใส่:
union(body('Select'),body('Select'))
- คลิก OK

ขั้นตอนที่ 6 – เพิ่ม Control ให้แต่ละอีเมล
- เลือก Control

- เลือก Apply to each จาก Actions

- คลิกกล่องใต้ Select an Output from previous steps
- เลือก Outputs ผ่าน Add dynamic content

ขั้นตอนที่ 7 – ดึงข้อมูลสำหรับแต่ละอีเมล
- คลิก Add an action

- ค้นหา filter array เลือก Filter array

- เลือก Value จาก Wizard

- คลิก Add dynamic content เลือก Email

- เลือก Current item ในฟิลด์ที่ 3

ขั้นตอนที่ 8 – สร้าง HTML สำหรับอีเมลแจ้งเตือน
- คลิก Add an action ค้นหา Create HTML Table เลือก Create HTML Table

- ใน From คลิกกล่อง > Add dynamic content > Body
- คลิก Show advanced options

- ใน Columns เลือก Custom

- ตั้งชื่อคอลัมน์ Header: คอลัมน์ 1 = Deadline
- คอลัมน์ 2 ใช้สูตรใน Expression:
formatDateTime(item()['Deadline'],'MMM d,yyyy')

จัดรูปแบบค่า Deadline ให้เป็นรูปแบบที่กำหนด
- เพิ่มคอลัมน์ Topic
- ตั้งค่า Value ด้วยสูตรใน Expression:

ขั้นตอนที่ 9 – สร้างอีเมลใน Outlook อัตโนมัติ
- เพิ่ม Action Send an email (V2)

- คลิกฟิลด์ To > Add dynamic content > Current item

- ใส่ Subject
- ใน Body คลิก Add dynamic content เลือก Output

- ตั้งค่าขั้นสูงได้ที่ Show advanced options

- คลิก Save
- Flow พร้อม ทดสอบได้ที่ปุ่ม Test

- เลือก Manually ทดสอบด้วยมือ
- เปิด Outlook เช็คอีเมลอัตโนมัติ

ผลลัพธ์สุดท้าย
- ตัวอย่างข้อความใน Outlook

วิธีที่ 2 – ส่งอีเมลแจ้งเตือนจาก Excel Worksheet ด้วย VBA
ขั้นตอน:
- ใช้ชุดข้อมูลเดิม
- ถ้า Deadline อยู่ระหว่าง 1-7 วัน จากวันนี้ จะส่งอีเมลเตือนอัตโนมัติ

- เปิด VBA Macro ด้วย Alt + F11

- หน้าต่าง Microsoft Visual Basic for Applications เปิด
- แท็บ Insert > Module

- วางโค้ด VBA นี้ในโมดูล:
Public Sub SendReminderMail()
' Declare variables
Dim XDueDate As Range, XRcptsEmail As Range, xMailContent As Range
Dim xRngDn As Range, xCrtOut As Object
Dim xValDateRng As String, xValSendRng As String
Dim k As Long, xMailSections As Object
Dim xFinalRw As Long, CrVbLf As String
Dim xMsg As String, xSubEmail As String
On Error Resume Next
' Select Due Date column
Set XDueDate = Application.InputBox("Select the column for Deadline/Due Date date column:", "ExcelDemy", , , , , , 8)
If XDueDate Is Nothing Then Exit Sub
' Select Recipients email column
Set XRcptsEmail = Application.InputBox("Choose the column for the email addresses of the recipients:", "ExcelDemy", , , , , , 8)
If XRcptsEmail Is Nothing Then Exit Sub
' Select reminded text column
Set xMailContent = Application.InputBox("In your email, choose the column with the reminded text:", "ExcelDemy", , , , , , 8)
If xMailContent Is Nothing Then Exit Sub
' Count rows
xFinalRw = XDueDate.Rows.Count
Set XDueDate = XDueDate(1)
Set XRcptsEmail = XRcptsEmail(1)
Set xMailContent = xMailContent(1)
' Open Outlook
Set xCrtOut = CreateObject("Outlook.Application")
' Loop each row
For k = 1 To xFinalRw
xValDateRng = XDueDate.Offset(k - 1).Value
If xValDateRng <> "" Then
' Send if 1 < (Due Date - Today) <= 7
If CDate(xValDateRng) - Date <= 7 And CDate(xValDateRng) - Date > 0 Then
xValSendRng = XRcptsEmail.Offset(k - 1).Value
xSubEmail = xMailContent.Offset(k - 1).Value & " on " & xValDateRng
CrVbLf = "<br><br>"
xMsg = "<HTML><BODY>"
xMsg = xMsg & "Dear " & xValSendRng & CrVbLf
xMsg = xMsg & "Text : " & xMailContent.Offset(k - 1).Value & CrVbLf
xMsg = xMsg & "</BODY></HTML>"
' Create email
Set xMailSections = xCrtOut.CreateItem(0)
With xMailSections
.Subject = xSubEmail
.To = xValSendRng
.HTMLBody = xMsg
.Display
.Send
End With
Set xMailSections = Nothing
End If
End If
Next
Set xCrtOut = Nothing
End Sub

- บันทึก แล้วกด F5 รัน
- หรือกดไอคอน Play

- กล่อง Input ขึ้น: เลือกคอลัมน์ Deadline (เช่น D5:D10) กด OK

- กล่องถัดไป: เลือกคอลัมน์อีเมล (เช่น B5:B10) กด OK

- กล่องสุดท้าย: เลือกคอลัมน์ Topic (เช่น C5:C10) กด OK

- อีเมลเตือนจะถูกส่งก่อนครบกำหนด
- สามารถส่งด้วยมือได้: วางอะพอสโทรฟี (') หน้า .Send เพื่อปิดการส่งอัตโนมัติ

- จะได้ Draft ทั้งหมดในแอป
- กด Send เอง เลือกผู้รับที่ต้องการ

ดาวน์โหลดสมุดงานฝึกหัด
บทความเกี่ยวข้อง
- วิธีสร้าง Popup Reminder ใน Excel
- วิธีสร้าง Notifications หรือ Reminders ใน Excel
- วิธีสร้าง Alerts ใน Excel
- วิธีปิด Alerts ใน Excel VBA
- วิธีตั้งสูตร Due Date Reminder ใน Excel
- วิธีตั้ง Due Date Reminder ใน Excel
<< กลับไปยัง Alerts in Excel | Learn Excel
รับแบบฝึกหัด Excel ขั้นสูงพร้อมเฉลยฟรี!