Tạo Trình tạo email động với các mẫu trong Excel
Email là một trong những công cụ mạnh mẽ nhất để liên lạc. Tự động tạo email có thể tiết kiệm thời gian và đảm bảo tính nhất quán trong giao tiếp. Excel VBA có thể tạo trình tạo email động cho phép bạn tự động tạo email được cá nhân hóa từ các mẫu.
Trong bài viết này, chúng tôi sẽ tạo một trình tạo email động với các mẫu trong Excel.
Điều kiện tiên quyết
- Microsoft Excel (2016 hoặc mới hơn).
- Hiểu biết cơ bản về Excel.
- Truy cập vào trình chỉnh sửa VBA (Đã bật tab Nhà phát triển).
Bước 1:Thiết lập sổ làm việc Excel của bạn
Tạo bảng dữ liệu
- Thêm trang tính mới có tên Dữ liệu.
- Tạo cột cho thông tin người nhận của bạn:
- Tên
- Họ
- Công ty
- Sở
- Vai trò
- Chủ đề cuộc họp
- Mục hành động
- Tên người gửi

Tạo trang mẫu
- Tạo một trang tính khác có tên Mẫu.
- Tạo các cột sau:
- ID mẫu
- Tên mẫu
- Dòng chủ đề
- Nội dung email
Bước 2:Tạo mẫu email
Tạo mẫu email tự động chèn các giá trị bằng cách sử dụng các phần giữ chỗ như {{FirstName}}, {{Company}}, {{Department}}, {{Role}}, v.v.
Mẫu 1:
Hãy tạo một mẫu cho email giới thiệu tự động.
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 Mẫu này được sử dụng cho các email giới thiệu tự động, trong đó các giá trị thực tế thay thế phần giữ chỗ trước khi gửi, đảm bảo thư được cá nhân hóa cho mỗi người nhận.
Giải thích:
- {{FirstName}}:Phần giữ chỗ cho tên của nhân viên.
- {{Company}}:Phần giữ chỗ cho tên công ty.
- {{Department}}:Trình giữ chỗ cho bộ phận nơi nhân viên mới được phân công.
- {{Role}}:Phần giữ chỗ cho vai trò công việc của nhân viên.
Mẫu 2:
Chúng tôi đã tạo một mẫu khác để liên lạc sau cuộc họp.
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}}

Bước 3:Chèn mã VBA
Để mở trình soạn thảo VBA:
- Đi tới Nhà phát triển tab>> chọn Visual Basic .
- Nhấp vào Chèn >> chọn Mô-đun .
- Sao chép và dán đoạn mã sau:

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 Bước 4:Chạy Trình tạo email
- Trên Nhà phát triển tab>> nhấp vào Macro .
- Chọn Tạo email >> nhấp vào Chạy .

- Trong Hộp thông báo>> nhập ID mẫu: 1 .
- Nó sẽ gửi tất cả thư theo mẫu 1.

- Lại Chạy mã.
- Trong Hộp thông báo>> nhập ID mẫu:2 .

Nó sẽ gửi tất cả các thư theo mẫu 2.

- Xem lại email đã tạo trước khi gửi chúng.
- Nếu không cần xem xét, hãy sử dụng .Send thuộc tính thay vì .Display để gửi tất cả email.
Mẹo tùy chỉnh
Thêm trường giữ chỗ mới:
- Thêm cột mới trong Dữ liệu tờ giấy.
- Cập nhật hàm Thay thế trong mã VBA để bao gồm trường mới.
- Thêm trình giữ chỗ mới vào mẫu email của bạn bằng định dạng {{FieldName}}.
Định dạng HTML:
Bạn có thể đưa định dạng HTML vào mẫu email của mình:
<p style="color: blue;">This text will be blue</p>
<strong>This text will be bold</strong> Kết luận
Hướng dẫn này sẽ giúp bạn thiết lập tính năng tạo email động trong Excel với các mẫu được xác định trước và tự động hóa VBA. Bạn có thể sử dụng các mẫu này để liên lạc trong kinh doanh, theo dõi khách hàng và nhắc nhở tự động. Trình tạo email này sẽ hoạt động như một nền tảng, bạn có thể tùy chỉnh nó dựa trên yêu cầu cụ thể của mình. Chỉ cần tạo mẫu, cập nhật bảng dữ liệu và giữ chỗ trong mã VBA. Hãy nhớ kiểm tra kỹ lưỡng trước khi sử dụng nó trong môi trường sản xuất.
Nhận MIỄN PHÍ Bài tập Excel nâng cao có Giải pháp!