Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Office

Xây Dựng Trình Tạo Email Động Trong Excel Sử Dụng Mẫu

Email là một trong những công cụ mạnh mẽ nhất cho giao tiếp. Tự động hóa 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á nhân hóa từ các mẫu.

Trong bài viết này, chúng ta sẽ tạo trình tạo email động với 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 trình soạn thảo VBA (tab Developer được bật).

Bước 1: Thiết Lập Sổ Làm Việc Excel Của Bạn

Tạo Sheet Dữ Liệu:

  • Thêm sheet mới tên là Data.
  • Tạo cột cho thông tin người nhận:
    • First Name (Tên)
    • Last Name (Họ)
    • Email
    • Company (Công ty)
    • Department (Phòng ban)
    • Role (Vai trò)
    • Meeting Topic (Chủ đề họp)
    • Action Item (Hành động)
    • Sender Name (Tên người gửi)

Xây Dựng Trình Tạo Email Động Trong Excel Sử Dụng Mẫu

Tạo Sheet Mẫu:

  • Tạo sheet khác tên là Template.
  • Tạo các cột sau:
    • Template ID
    • Template Name
    • Subject Line (Tiêu đề)
    • Email Body (Nội dung email)

Bước 2: Tạo Mẫu Email

Tạo mẫu email chèn động giá trị bằng placeholder như {{FirstName}}, {{Company}}, {{Department}}, {{Role}}, v.v.

Mẫu 1:

Hãy tạo mẫu cho email onboarding 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 dùng cho email onboarding tự động, nơi giá trị thực tế thay thế placeholder trước khi gửi, đảm bảo thông điệp cá nhân hóa cho mỗi người nhận.

Giải Thích:

  • {{FirstName}}: Placeholder cho tên nhân viên.
  • {{Company}}: Placeholder cho tên công ty.
  • {{Department}}: Placeholder cho phòng ban nơi nhân viên mới được phân công.
  • {{Role}}: Placeholder cho vai trò công việc của nhân viên.

Mẫu 2:

Chúng ta tạo mẫu khác cho giao tiếp 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}}

Xây Dựng Trình Tạo Email Động Trong Excel Sử Dụng Mẫu

Bước 3: Chèn Mã VBA

Để mở trình soạn thảo VBA:

  • Chuyển đến tab Developer >> chọn Visual Basic.
  • Nhấp Insert >> chọn Module.
  • Sao chép và dán mã sau:

Xây Dựng Trình Tạo Email Động Trong Excel Sử Dụng Mẫu

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
  
  ' Thiết lập tham chiếu worksheet
  Set ws = ThisWorkbook.Sheets("Data")
  Set templateWs = ThisWorkbook.Sheets("Templates")
  
  ' Tìm hàng cuối có dữ liệu
  lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
  
  ' Lấy Template ID từ người dùng
  templateID = InputBox("Enter the Template ID number:", "Select Template")
  
  ' Lấy văn bản mẫu
  subjectLine = GetTemplate("Subject_Line", templateID)
  emailBody = GetTemplate("Email_Body", templateID)
  
  ' Chuyển ký tự đặc biệt thành xuống dòng đúng
  emailBody = Replace(emailBody, "\n", vbNewLine)
  
  ' Tạo mục Outlook
  Dim outlookApp As Object
  Dim emailItem As Object
  Set outlookApp = CreateObject("Outlook.Application")
  
  ' Lặp qua từng hàng dữ liệu
  For i = 2 To lastRow
    ' Tạo email mới
    Set emailItem = outlookApp.CreateItem(0)
    With emailItem
      ' Thay thế placeholder bằng dữ liệu thực
      .Subject = ReplaceFields(subjectLine, i, ws)
      .Body = ReplaceFields(emailBody, i, ws)
      ' Đã thay đổi từ .HTMLBody sang .Body
      .To = ws.Cells(i, 3).Value
      ' Email ở cột C
      .Display
      ' Hiển thị email (thay bằng .Send để gửi tự động)
    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")
  
  ' Tìm hàng mẫu
  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
  
  ' Thay thế tất cả placeholder trường bằng dữ liệu thực
  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 tab Developer >> nhấp Macros.
  • Chọn GenerateEmails >> nhấp Run.

Xây Dựng Trình Tạo Email Động Trong Excel Sử Dụng Mẫu

  • Trong Message Box >> nhập Template ID: 1.
  • Nó sẽ gửi tất cả email theo mẫu 1.

Xây Dựng Trình Tạo Email Động Trong Excel Sử Dụng Mẫu

  • Lại Run mã.
  • Trong Message Box >> nhập Template ID: 2.

Xây Dựng Trình Tạo Email Động Trong Excel Sử Dụng Mẫu

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

Xây Dựng Trình Tạo Email Động Trong Excel Sử Dụng Mẫu

  • Xem lại email đã tạo trước khi gửi.
  • Nếu không cần xem lại, dùng thuộc tính .Send thay vì .Display để gửi tất cả email.

Mẹo Tùy Chỉnh

Thêm Placeholder Mới:

  • Thêm cột mới trong sheet Data.
  • Cập nhật hàm ReplaceFields trong mã VBA để bao gồm trường mới.
  • Thêm placeholder mới vào mẫu email dùng định dạng {{FieldName}}.

Định Dạng HTML:

Bạn có thể bao gồm định dạng HTML trong mẫu email:

<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ạo email động trong Excel với mẫu định sẵn và tự động hóa VBA. Bạn có thể dùng các mẫu này cho giao tiếp kinh doanh, theo dõi khách hàng và nhắc nhở tự động. Trình tạo email này sẽ làm nền tảng, bạn có thể tùy chỉnh dựa trên yêu cầu cụ thể. Chỉ cần tạo mẫu, cập nhật sheet dữ liệu và placeholder trong mã VBA. Hãy nhớ kiểm tra kỹ trước khi dùng trong môi trường sản xuất.

Nhận Bài Tập Excel Nâng Cao Miễn Phí Kèm Giải Pháp!