□ 엑셀 파일 통합
파일이 100여 개나 되는데 이것을 일일이 '복사-붙여 넣기'해서 하나의 파일로 만든다거나 또는 위와 같이 일일이 하드 코딩을 해 주어야 한다면 많은 시간이 걸리고 어려움이 있다.
1. 폴더를 하나 만들고
2. 병합하고자 하는 파일들을 옮겨 놓는다.
3. 대화 상자에서 Ctrl 키나 Shift 키를 누른 채 파일을 선택하면 여러 개의 파일을 동시에 선택할 수 있다.
□ 엑셀 파일 통합 매크로
Sub ConsolWorkbook()
Dim varFileName As Variant
Dim varTemp As Variant
Dim shtSheet As Worksheet
Dim wrkBook As Workbook
Dim rngCell As Range
Dim i As Integer
Dim rngTarget As Range
Application.ScreenUpdating = False
varFileName = Application.GetOpenFilename(filefilter:="Excel Files(*.xls),*.xls", Title:="작업파일을 모두 선택하세요", MultiSelect:=True)
' GetOpenFilename 메서드를 이용하여 열기 대화 상자를 표시하고 사용자가 선택한
' 파일 이름을 얻을 준비를 한다.
If TypeName(varFileName) = "Boolean" Then Exit Sub
Set shtSheet = Worksheets.Add
shtSheet.Move after:=Sheets(Sheets.Count)
' 워크시트를 한장 삽입하고 워크북의 맨 마지막으로 이동시킨다.
For Each varTemp In varFileName
' 선택된 파일(들)에 대해 순환문을 실행한다.
Set wrkBook = Workbooks.Open(varTemp)
Set rngTarget = shtSheet.Cells(65536, 1).End(xlUp).Offset(1, 0)
' 선택된 파일을 열고, 현재 워크북의 마지막 시트(shtSheet) 중에서 데이터가 들어있는
' A열의 마지막 셀 바로 아래 Range를 rngTarget Range 오브젝트 변수로 지정한다.
' 그래야 데이터를 계속 붙여 나갈 수 있다.
wrkBook.Worksheets(1).UsedRange.Offset(0, 0).Copy rngTarget
' 편의상 선택된 파일의 첫번째 워크시트 내용만 복사를 하는 것으로 만들었다.
' 여러 시트의 내용을 복사하시려면 이 부분에 순환문을 한번 더 중첩하면 된다.
' 이것은 여러분이 직접 해 보시기 바란다.
Application.CutCopyMode = False
wrkBook.Close savechanges:=False
i = i + 1
Next varTemp
If i = 0 Then
MsgBox "오류가 발생하였습니다"
GoTo ET
' 만약 비정상적인 형태의 파일이 선택되었다면 오류 메시지를 띄우고 에러 트래핑 구문을 ' 실행한다.
End If
Application.ScreenUpdating = True
MsgBox "파일 통합 작업을 완료하였습니다", , "http://www.iExceller.com"
ET:
End Sub
□ 사용용방법 : 1-n개 File_통합_macro.xlsm
1. 폴더에 합치고 싶은 엑셀파일을 모두 넣는다
2. 엑셀통합프로그램을 실행한다
3. 보안옵션을 해제한다
4. 신통한 문서통합 Click Me!!!란 버튼을 클릭한다.
5. 폴더에 합치고 싶은 엑셀을 모두 선택한다(모두선택방법은 여러가지-마우스드래그하기 또는 Ctrl 키나 Shift 키를 누른 채 파일을 선택 등)
6. 열기 버튼을 누른다
7. 엑셀통합프로그램의 새로운 시트에 자동으로 합쳐진 화일이 생성된다.
□ 엑셀 파워쿼리 이용
Office 2016버전부터는 파워쿼리가 내장되어 있지만 그 이전버전을 사용하시는 분들을 아래 링크를 통해 확장 프로그램을 받으시길 바란다.
https://www.microsoft.com/ko-kr/download/details.aspx?id=39379
1. 사전 준비하기(폴더에 합칠 파일 모아두기) : 합치고자 하는 파일들을 하나의 폴더에 저장
2. 엑셀 파워쿼리 실행하기 : [데이터] -> [데이터 가져오기] -> [파일에서] -> [폴더에서] 클릭
3. 데이터를 가져올 폴더 선택하기 : 1번에서 파일들을 저장한 폴더를 찾아서 [열기] 클릭
4. 결합 및 로드 클릭 : 미리 보기 데이터에서 폴더 내 파일이 정상적으로 추가되었는지 확인 후, [결합] - [결합 및 로드] 클릭
5. 매개 변수 테이블 선택 : 선택한 폴더의 파일 중 1개가 대표로 선택되며, '파일 병합'미리보기에서 병합하고자 하는 시트 선택 후 확인
6. 최종 데이터 확인 : 파일의 테이블 정보가 하나로 병합되었는지 확인