팀별로 취합된 매출 자료나 각기 다른 파일로 저장된 데이터를 하나로 합쳐야 할 때, 보통 어떻게 하시나요? 파일을 하나하나 열어서 데이터를 복사하고, 메인 파일에 붙여넣는 과정을 반복하고 계셨다면 오늘 소개할 매크로가 여러분의 퇴근 시간을 최소 1시간은 앞당겨줄 것입니다.
오늘은 특정 폴더에 들어있는 여러 개의 엑셀 파일을 단 한 번의 클릭으로 현재 시트에 층층이 쌓아주는 자동 합치기 기능을 공유합니다.
1. 파일 합치기 자동화가 왜 필요할까요?
수작업으로 데이터를 합치다 보면 가장 큰 문제는 '실수'가 생긴다는 점입니다. 중간에 한 줄을 빼먹거나, 엉뚱한 곳에 붙여넣는 일이 비일비재하죠. 또한 데이터 양이 많아질수록 단순 반복 작업에 들어가는 에너지 소모가 너무 큽니다. 매크로를 이용하면 정확한 위치에 순식간에 데이터를 모을 수 있어 분석에만 집중할 수 있게 됩니다.
2. 엑셀 파일 일괄 합치기 VBA 코드
이 코드는 매크로를 실행한 파일과 '같은 폴더'에 있는 모든 엑셀 파일을 찾아 그 안의 내용을 가져옵니다.
Alt + F11을 눌러 편집기를 여신 뒤, 삽입 메뉴에서 모듈을 추가하고 아래 내용을 복사해서 넣어보세요.
Sub CombineFiles()
Dim FileName As String
Dim FolderPath As String
Dim Wb As Workbook
Dim ws As Worksheet
Dim DestSheet As Worksheet
Dim LastRow As Long
Dim CopyRng As Range
' 결과가 저장될 시트를 지정합니다.
Set DestSheet = ThisWorkbook.ActiveSheet
FolderPath = ThisWorkbook.Path & "\"
FileName = Dir(FolderPath & "*.xlsx")
Application.ScreenUpdating = False
' 폴더 내의 파일을 하나씩 확인합니다.
Do While FileName <> ""
' 현재 매크로가 실행 중인 파일은 제외합니다.
If FileName <> ThisWorkbook.Name Then
Set Wb = Workbooks.Open(FolderPath & FileName)
Set ws = Wb.Sheets(1) ' 각 파일의 첫 번째 시트를 기준으로 합니다.
' 복사할 범위를 지정합니다 (첫 행은 제목이므로 2행부터 가져옵니다).
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
If LastRow > 1 Then
Set CopyRng = ws.Range("A2:Z" & LastRow) ' A부터 Z열까지 데이터를 가져옵니다.
' 메인 파일의 마지막 행 다음에 붙여넣습니다.
CopyRng.Copy DestSheet.Cells(DestSheet.Rows.Count, "A").End(xlUp).Offset(1, 0)
End If
Wb.Close SaveChanges:=False
End If
FileName = Dir
Loop
Application.ScreenUpdating = True
MsgBox "모든 파일의 데이터가 하나로 합쳐졌습니다.", vbInformation, "작업 완료"
End Sub
3. 실무 활용 팁
위 코드는 각 파일의 첫 번째 시트에서 데이터를 가져오도록 되어 있습니다. 만약 파일마다 합쳐야 할 시트 이름이 다르거나 특정 범위만 가져와야 한다면 코드를 조금 수정해야 하지만, 대부분의 정형화된 보고서 취합에는 이 코드만으로도 충분합니다.
한 가지 주의할 점은, 합치려는 파일들의 열 순서(양식)가 동일해야 데이터가 꼬이지 않는다는 것입니다. 작업을 시작하기 전 양식이 통일되어 있는지 확인하는 습관을 들이시면 좋습니다.
4. 마치며
단순한 복사, 붙여넣기 반복은 이제 엑셀 매크로에게 맡기세요. 여러분은 그렇게 아낀 시간에 더 가치 있는 데이터 분석과 기획에 집중하시길 바랍니다. 월요일 아침, 가뿐한 마음으로 업무를 시작해 보세요!
'업무 자동화' 카테고리의 다른 글
| 엑셀 검색 자동화, 내가 찾는 데이터만 행 전체 색칠하기 (하이라이트 매크로) (0) | 2026.02.11 |
|---|---|
| 엑셀 피벗테이블 새로고침 노가다 끝, 데이터 입력 시 자동 업데이트 방법 (3) | 2026.02.10 |
| 엑셀 시트 이름 바꾸기 노가다 끝! 여러 시트 이름 일괄 변경 매크로 (3) | 2026.02.08 |
| 엑셀 시트 보호와 비밀번호 설정, 중요한 데이터 지키는 법 (0) | 2026.02.07 |
| 엑셀 중복 값 제거하기, 버튼 하나로 고유 목록만 남기는 방법 (0) | 2026.02.06 |