Computer >> 컴퓨터 >  >> 소프트웨어 >> Office

템플릿을 사용하여 Excel에서 동적 이메일 생성기 구축

템플릿을 사용하여 Excel에서 동적 이메일 생성기 구축
Excel의 템플릿을 사용하여 동적 이메일 생성기 만들기
 

이메일은 의사소통을 위한 가장 강력한 도구 중 하나입니다. 이메일 생성을 자동화하면 시간을 절약하고 커뮤니케이션의 일관성을 보장할 수 있습니다. Excel VBA는 템플릿에서 개인화된 이메일을 자동으로 생성할 수 있는 동적 이메일 생성기를 만들 수 있습니다.

이 글에서는 Excel의 템플릿을 사용하여 동적 이메일 생성기를 만들어 보겠습니다.

전제조건

  • Microsoft Excel(2016 이상).
  • Excel에 대한 기본 이해
  • VBA 편집기에 액세스합니다(개발자 탭 활성화됨).

1단계:Excel 통합 문서 설정

데이터 시트 만들기

  • Data라는 이름의 새 시트를 추가합니다.
  • 수신자 정보에 대한 열 만들기:
    • 이름
    • 이메일
    • 회사
    • 부서
    • 역할
    • 회의 주제
    • 작업 항목
    • 발신자 이름

템플릿을 사용하여 Excel에서 동적 이메일 생성기 구축

템플릿 시트 만들기

  • 템플릿이라는 이름의 다른 시트를 만듭니다.
  • 다음 열을 만듭니다.
    • 템플릿 ID
    • 템플릿 이름
    • 제목
    • 이메일 본문

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}}:직원의 이름에 대한 자리 표시자입니다.
  • {{회사}}:회사 이름에 대한 자리 표시자입니다.
  • {{Department}}:신입사원이 배정된 부서에 대한 자리 표시자입니다.
  • {{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}}

템플릿을 사용하여 Excel에서 동적 이메일 생성기 구축

3단계:VBA 코드 삽입

VBA 편집기를 열려면:

  • 개발자로 이동 탭>> Visual Basic 선택 .
  • 삽입 을 클릭하세요.>> 모듈을 선택합니다. .
  • 다음 코드를 복사하여 붙여넣으세요.

템플릿을 사용하여 Excel에서 동적 이메일 생성기 구축

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단계:이메일 생성기 실행

  • 개발자에서 탭>> 매크로를 클릭하세요. .
  • 이메일 생성을 선택합니다.>> 실행을 클릭하세요. .

템플릿을 사용하여 Excel에서 동적 이메일 생성기 구축

  • 메시지 상자>>템플릿 ID:를 입력하세요.  1 .
  • 템플릿 1을 따르는 모든 메일을 보냅니다.

템플릿을 사용하여 Excel에서 동적 이메일 생성기 구축

  • 다시 실행 코드입니다.
  • 메시지 상자>> 템플릿 ID:2를 입력하세요. .

템플릿을 사용하여 Excel에서 동적 이메일 생성기 구축

템플릿 2를 따르는 모든 메일을 보냅니다.

템플릿을 사용하여 Excel에서 동적 이메일 생성기 구축

  • 생성된 이메일을 보내기 전에 검토하세요.
  • 검토가 필요하지 않은 경우 .보내기를 사용하세요. .Display 대신 속성 모든 이메일을 보내려고 합니다.

맞춤 설정 팁

새 자리 표시자 필드 추가:

  • 데이터 에 새 열을 추가합니다. 시트.
  • 새 필드를 포함하도록 VBA 코드의 ReceildFields 함수를 업데이트하세요.
  • {{FieldName}} 형식을 사용하여 이메일 템플릿에 새 자리 표시자를 추가합니다.

HTML 형식:

이메일 템플릿에 HTML 형식을 포함할 수 있습니다:

<p style="color: blue;">This text will be blue</p>
<strong>This text will be bold</strong>

결론

이 튜토리얼은 사전 정의된 템플릿과 VBA 자동화를 사용하여 Excel에서 동적 이메일 생성을 설정하는 데 도움이 됩니다. 비즈니스 커뮤니케이션, 고객 후속 조치 및 자동 알림에 이러한 템플릿을 사용할 수 있습니다. 이 이메일 생성기는 기초로 작동하며 특정 요구 사항에 따라 사용자 정의할 수 있습니다. 템플릿을 생성하고 데이터 시트와 VBA 코드의 자리 표시자를 업데이트하면 됩니다. 프로덕션 환경에서 사용하기 전에 철저히 테스트하는 것을 잊지 마세요.

솔루션이 포함된 무료 고급 Excel 연습을 받아보세요!