많은 사용자가 Excel 파일에 한두 명의 고객 메일 정보만 보유하고 있는 경우가 있습니다. 이럴 때 활성 파일의 기존 데이터와 일치하는 나머지 메일 정보를 가져와야 하며, 이를 위해 Excel에서 Excel로 편지 병합(Mail Merge)을 수행해야 합니다. Excel VBA 매크로를 활용하면 이 작업을 손쉽게 처리할 수 있습니다.
예를 들어, 사용자가 이메일 주소 하나만 있는 Excel 통합 문서에서 작업 중이고, 다른 파일에는 현재 통합 문서 항목들에 필요한 나머지 메일 정보가 모두 들어 있다고 가정해 보겠습니다. 이 경우 두 파일의 데이터를 자동으로 병합하는 것이 효율적입니다.

이 글에서는 Excel에서 Excel로 편지 병합을 수행하는 VBA 매크로를 단계별로 소개합니다.
Excel 통합 문서 다운로드
메일 데이터가 불완전한 통합 문서
기존 메일 데이터가 담긴 통합 문서
Excel에서 Excel로 편지 병합하는 VBA 매크로
앞서 언급했듯이, 다른 통합 문서에서 기존 항목과 일치하는 메일 정보를 가져와야 합니다. 단순히 두 파일을 병합하는 것으로도 작업을 처리할 수 있지만, 그렇게 되면 이메일을 보낼 각 메일 주소를 일일이 찾아야 하는 번거로움이 생깁니다. 즉, 두 개의 Excel 통합 문서를 무작정 병합하면 편지 병합의 목적 자체가 사라집니다. 아래 섹션을 통해 상황과 해결 방법을 자세히 살펴보세요.
Excel 통합 문서의 기존 메일 데이터
Excel 통합 문서에 저장된 기존 메일 정보는 아래 이미지와 같습니다. 실제 데이터는 수백 개의 행과 수십 개의 열로 구성될 수 있지만, 설명을 위해 몇 개의 행과 열만 사용하겠습니다. 이 통합 문서의 이름은 Mail_Data이며, 시트 이름은 Mail Data입니다.

함께 읽으면 좋은 글: 첨부 파일과 함께 Excel에서 Outlook으로 편지 병합하는 방법 (2가지 예시)
다른 통합 문서에 있는 필요한 메일 데이터
이번에는 이메일 주소가 4~5개만 있는 또 다른 Excel 통합 문서가 있습니다. 우리는 이 데이터를 앞서 만든 기존 통합 문서와 병합하여 모든 빈 셀을 자동으로 채우고자 합니다.

함께 읽으면 좋은 글: Excel에서 Outlook으로 편지 병합하는 방법 (쉬운 단계)
Excel에서 Excel로 편지 병합하는 VBA 매크로 실행 방법
활성 통합 문서를 기존 통합 문서와 병합하려면 VBA 매크로 코드를 사용해야 합니다.
1단계: ALT+F11 키를 누르거나 개발 도구 탭 > Visual Basic으로 이동하여 Microsoft Visual Basic 창을 엽니다. 창에서 삽입 > 모듈을 클릭하여 새 모듈을 추가합니다.

2단계: 아래 매크로 코드를 모듈에 붙여넣습니다.
Sub Mail_Merge_From_Excel_to_Excel()
Book1_Path = "C:\Users\maruf\Desktop\Softeko\Mail Merge from Excel to Excel\Mail_Data.xlsx"
Book1_Name = "Mail_Data"
Book2_Name = "Mail_Merge"
Sheet1_Name = "Mail Data"
Sheet2_Name = "Mail Merge"
No_of_Columns = 9
Workbooks.Open Book1_Path
Set Rng1 = Workbooks(Book1_Name).Worksheets(Sheet1_Name).UsedRange
Set Rng2 = Workbooks(Book2_Name).Worksheets(Sheet2_Name).UsedRange
For i = 1 To Rng2.Rows.Count
For j = 1 To Rng1.Rows.Count
If Rng1.Cells(j, No_of_Columns) = Rng2.Cells(i, No_of_Columns) Then
For k = 1 To No_of_Columns - 1
Rng2.Cells(i, k) = Rng1.Cells(j, k)
Next k
Exit For
End If
Next j
Next i
End Sub

➤ 위 이미지에서 번호가 매겨진 부분의 의미는 다음과 같습니다.
1 – VBA 매크로 코드의 Sub 이름을 선언하며 매크로를 시작합니다.
2 – 컴퓨터에 저장된 기존 통합 문서의 경로를 지정하고, 변수 이름과 열 번호를 설정합니다.
3 – Workbooks.Open 명령을 사용하여 기존 통합 문서를 엽니다.
4 – 각 통합 문서와 해당 시트에 특정 범위를 할당합니다.
5 – 중첩된 VBA FOR 루프를 실행하여 VBA IF 문의 조건이 충족되는 경우 데이터를 병합합니다.
3단계: 코드를 입력한 후 F5 키를 누르거나 실행 > Sub/UserForm 실행을 클릭하여 매크로를 실행합니다.

🔺 매크로를 실행하면 Excel이 즉시 닫혀 있던 Mail_Data 통합 문서를 엽니다.

🔺 이제 Merge_Data 통합 문서로 돌아가 변경 사항을 확인하세요. 원하는 대로 Excel이 기존 항목들의 메일 정보를 자동으로 병합한 것을 볼 수 있습니다.

함께 읽으면 좋은 글: Excel에서 편지 병합 문서를 채우는 매크로
마무리
이 글에서는 Excel에서 Excel로 편지 병합을 수행하는 VBA 매크로 코드를 소개했습니다. 이 방법이 여러분의 반복적인 데이터 병합 작업을 자동화하는 데 도움이 되기를 바랍니다. 추가 문의 사항이나 덧붙일 내용이 있다면 댓글로 알려주세요.
관련 글
- Excel에서 편지 병합 문서를 채우는 매크로
- Excel 편지 병합에서 날짜 형식 변경하는 방법 (빠른 단계)
- Excel 파일을 우편 라벨로 병합하는 방법 (쉬운 단계)
- Excel에서 Word 봉투로 편지 병합 (2가지 쉬운 방법)
- Excel에서 Word로 그림 편지 병합하는 방법 (2가지 쉬운 방법)