การสร้างเครื่องมือสร้างอีเมลแบบไดนามิกด้วยเทมเพลตใน Excel
อีเมลเป็นหนึ่งในเครื่องมือที่ทรงพลังที่สุดในการสื่อสาร การสร้างอีเมลอัตโนมัติสามารถประหยัดเวลาและรับประกันความสม่ำเสมอในการสื่อสาร Excel VBA สามารถสร้างเครื่องมือสร้างอีเมลแบบไดนามิกที่ช่วยให้คุณสามารถสร้างอีเมลส่วนบุคคลจากเทมเพลตได้โดยอัตโนมัติ
ในบทความนี้ เราจะสร้างเครื่องมือสร้างอีเมลแบบไดนามิกพร้อมเทมเพลตใน Excel
ข้อกำหนดเบื้องต้น ป>
- Microsoft Excel (2016 หรือใหม่กว่า)
- ความเข้าใจขั้นพื้นฐานของ Excel
- เข้าถึงตัวแก้ไข VBA (เปิดใช้งานแท็บนักพัฒนาซอฟต์แวร์)
ขั้นตอนที่ 1:การตั้งค่าสมุดงาน Excel ของคุณ
สร้างเอกสารข้อมูล ป>
- เพิ่มแผ่นงานใหม่ชื่อ Data
- สร้างคอลัมน์สำหรับข้อมูลผู้รับของคุณ:
- ชื่อ
- นามสกุล
- อีเมล
- บริษัท
- แผนก
- บทบาท
- หัวข้อการประชุม
- รายการดำเนินการ
- ชื่อผู้ส่ง

สร้างแผ่นเทมเพลต ป>
- สร้างอีกแผ่นงานชื่อเทมเพลต
- สร้างคอลัมน์ต่อไปนี้:
- รหัสเทมเพลต
- ชื่อเทมเพลต
- หัวเรื่อง
- เนื้อหาอีเมล
ขั้นตอนที่ 2:การสร้างเทมเพลตอีเมล
สร้างเทมเพลตอีเมลที่แทรกค่าแบบไดนามิกโดยใช้ตัวยึดตำแหน่ง เช่น {{FirstName}}, {{Company}}, {{Department}}, {{Role}} ฯลฯ
แม่แบบ 1: ป>
มาสร้างเทมเพลตสำหรับอีเมลการเริ่มต้นใช้งานอัตโนมัติกัน
Dear {{FirstName}},
Welcome to {{Company}}! We're excited to have you on board.
Your account has been set up with the following details:
Department: {{Department}}
Role: {{Role}}
Best regards,
HR Team เทมเพลตนี้ใช้สำหรับอีเมลการเริ่มต้นใช้งานอัตโนมัติ โดยที่ค่าจริงจะแทนที่ตัวยึดตำแหน่งก่อนที่จะส่ง เพื่อให้มั่นใจว่าข้อความส่วนบุคคลสำหรับผู้รับแต่ละราย
คำอธิบาย: ป>
- {{FirstName}}:ตัวยึดตำแหน่งสำหรับชื่อพนักงาน
- {{บริษัท}}:ตัวยึดตำแหน่งสำหรับชื่อบริษัท
- {{แผนก}}:ตัวยึดตำแหน่งสำหรับแผนกที่ได้รับการมอบหมายพนักงานใหม่
- {{Role}}:ตัวยึดตำแหน่งสำหรับบทบาทงานของพนักงาน
เทมเพลต 2: ป>
เราได้สร้างเทมเพลตอื่นสำหรับการสื่อสารหลังการประชุม
Hi {{FirstName}},
Thank you for your time during our discussion about {{Meeting Topic}}. As discussed, I'm following up on {{Action Item}}.
Let me know if you have any questions.
Best regards,
{{Sender Name}}

ขั้นตอนที่ 3:ใส่โค้ด VBA
วิธีเปิดตัวแก้ไข VBA:
- ไปที่นักพัฒนาซอฟต์แวร์ แท็บ>> เลือก Visual Basic .
- คลิก แทรก >> เลือก โมดูล .
- คัดลอกและวางโค้ดต่อไปนี้:

Option Explicit
Public Sub GenerateEmails()
Dim ws As Worksheet
Dim templateWs As Worksheet
Dim lastRow As Long
Dim i As Long
Dim emailBody As String
Dim subjectLine As String
Dim templateID As Long
' Set references to worksheets
Set ws = ThisWorkbook.Sheets("Data")
Set templateWs = ThisWorkbook.Sheets("Templates")
' Find last row with data
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' Get template ID from user
templateID = InputBox("Enter the Template ID number:", "Select Template")
' Get template text
subjectLine = GetTemplate("Subject_Line", templateID)
emailBody = GetTemplate("Email_Body", templateID)
' Convert special characters to proper line breaks
emailBody = Replace(emailBody, "\n", vbNewLine)
' Create Outlook items
Dim outlookApp As Object
Dim emailItem As Object
Set outlookApp = CreateObject("Outlook.Application")
' Loop through each row of data
For i = 2 To lastRow
' Create new email
Set emailItem = outlookApp.CreateItem(0)
With emailItem
' Replace placeholders with actual data
.Subject = ReplaceFields(subjectLine, i, ws)
.Body = ReplaceFields(emailBody, i, ws) ' Changed from .HTMLBody to .Body
.To = ws.Cells(i, 3).Value ' Email address in column C
.Display ' Display email (change to .Send to send automatically)
End With
Next i
Set outlookApp = Nothing
End Sub
Private Function GetTemplate(field As String, templateID As Long) As String
Dim templateWs As Worksheet
Dim templateRow As Range
Set templateWs = ThisWorkbook.Sheets("Templates")
' Find the template row
Set templateRow = templateWs.Columns(1).Find(What:=templateID, LookIn:=xlValues, LookAt:=xlWhole)
If Not templateRow Is Nothing Then
Select Case field
Case "Subject_Line"
GetTemplate = templateWs.Cells(templateRow.Row, 3).Value
Case "Email_Body"
GetTemplate = templateWs.Cells(templateRow.Row, 4).Value
End Select
End If
End Function
Private Function ReplaceFields(text As String, rowNum As Long, ws As Worksheet) As String
Dim result As String
result = text
' Replace all field placeholders with actual data
result = Replace(result, "{{FirstName}}", ws.Cells(rowNum, 1).Value)
result = Replace(result, "{{LastName}}", ws.Cells(rowNum, 2).Value)
result = Replace(result, "{{Company}}", ws.Cells(rowNum, 4).Value)
result = Replace(result, "{{Department}}", ws.Cells(rowNum, 5).Value)
result = Replace(result, "{{Role}}", ws.Cells(rowNum, 6).Value)
result = Replace(result, "{{Meeting Topic}}", ws.Cells(rowNum, 7).Value)
result = Replace(result, "{{Action Item}}", ws.Cells(rowNum, 8).Value)
result = Replace(result, "{{Sender Name}}", ws.Cells(rowNum, 9).Value)
ReplaceFields = result
End Function ขั้นตอนที่ 4:เรียกใช้เครื่องมือสร้างอีเมล
- ใน นักพัฒนา แท็บ>> คลิก มาโคร .
- เลือก สร้างอีเมล >> คลิก เรียกใช้ .

- ในกล่องข้อความ>> ป้อน รหัสเทมเพลต: 1 .
- มันจะส่งอีเมลทั้งหมดตามเทมเพลต 1

- เรียกใช้อีกครั้ง รหัส.
- ในกล่องข้อความ>> ป้อน รหัสเทมเพลต:2 .

มันจะส่งอีเมลทั้งหมดตามเทมเพลต 2

- ตรวจสอบอีเมลที่สร้างขึ้นก่อนที่จะส่ง
- หากไม่จำเป็นต้องตรวจสอบ ให้ใช้ .ส่ง คุณสมบัติแทน .Display เพื่อส่งอีเมลทั้งหมด
เคล็ดลับการปรับแต่ง
การเพิ่มฟิลด์ตัวยึดตำแหน่งใหม่: ป>
- เพิ่มคอลัมน์ใหม่ใน ข้อมูล แผ่นงาน
- อัปเดตฟังก์ชัน RefplaceFields ในโค้ด VBA เพื่อรวมฟิลด์ใหม่
- เพิ่มตัวยึดตำแหน่งใหม่ให้กับเทมเพลตอีเมลของคุณโดยใช้รูปแบบ {{FieldName}}.
การจัดรูปแบบ HTML: ป>
คุณสามารถรวมการจัดรูปแบบ HTML ในเทมเพลตอีเมลของคุณได้:
<p style="color: blue;">This text will be blue</p>
<strong>This text will be bold</strong> บทสรุป
บทช่วยสอนนี้จะช่วยคุณตั้งค่าการสร้างอีเมลแบบไดนามิกใน Excel ด้วยเทมเพลตที่กำหนดไว้ล่วงหน้าและระบบอัตโนมัติของ VBA คุณสามารถใช้เทมเพลตเหล่านี้สำหรับการสื่อสารทางธุรกิจ การติดตามผลลูกค้า และการแจ้งเตือนอัตโนมัติ เครื่องมือสร้างอีเมลนี้จะทำงานเป็นพื้นฐาน คุณสามารถปรับแต่งได้ตามความต้องการเฉพาะของคุณ เพียงสร้างเทมเพลต อัปเดตแผ่นข้อมูล และตัวยึดตำแหน่งในโค้ด VBA อย่าลืมทดสอบอย่างละเอียดก่อนที่จะใช้ในสภาพแวดล้อมการใช้งานจริง
รับแบบฝึกหัด Excel ขั้นสูงพร้อมโซลูชันฟรี!