- 최초 작성일: 2026-10-10
- 최종 수정일: 2026-10-10
- 조회수: 325 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목:폴더 내 모든 파일 목록 쉽게 만들기 — 엑셀 파워 쿼리 vs VBA 뭐가 더 편할까?
들어가기 전에
데이터 취합 작업을 하다 보면 흔히 마주하는 상황이 있습니다. 이름은 제각각이고 누가 늦게 냈는지 확인하기 위해 파일마다 수정 날짜를 일일이 확인하는 경우가 그런 예입니다. 그나마 한 번에 마무리된다면 좋겠지만, 데이터 마감 이후에도 수정본이 계속 생겨서 반복 작업을 하게 됩니다. 이럴 때, 대상 파일들을 한 폴더에 넣어두기만 하면 자동으로 목록 파일을 만들 수 있다면 편리하겠죠? 두 가지 방법으로 해결해 보겠습니다.
영상에서는 VBA와 파워 쿼리, 이렇게 두 가지 방법을 직접 따라 하며 만들어 봅니다. 이 글은 영상과 함께 참고하실 수 있도록 VBA 코드와 주요 구문 설명, 방법 선택 기준, 영상에서 자세히 다루지 않은 세부 설정 등을 정리한 자료입니다. 목록을 만든 뒤 '파일 이름 자동 정리'까지 이어가는 방법은 멤버십 영상에서 다룹니다.
폴더 내 모든 파일 목록 쉽게 만들기 — 엑셀 파워 쿼리 vs VBA 뭐가 더 편할까?
폴더에 쌓인 파일의 이름·크기·수정일을 목록으로 만들고, 마감일을 넘긴 파일을 가려내는 두 가지 방법을 비교합니다. 영상에 대한 보충 자료로, 방법 선택 기준과 복사해서 쓸 수 있는 코드, 막혔을 때의 점검 목록 등을 담았습니다.
이번 영상에서 습득할 수 있는 주요 내용
- VBA로 폴더 파일 목록 만들기: 폴더 선택 창, Dir, FileLen, FileDateTime 네 가지 핵심 명령
- 마감일 초과 파일 자동 표시: IF 수식과 조건부 서식 조합
- 코딩 없이 파워 쿼리로 같은 목록 만들기와 새로 고침으로 갱신하는 방법
- 어떤 경우에 어느 쪽이 적합한지 판단하는 기준
- [멤버십용] 제각각인 파일 이름, 클릭 한 번으로 점포 코드가 붙은 이름으로 정리하고 변경 내역까지 남기는 방법
📈 신간 전자책(PDF) · 375쪽 · 12,000원9,500원
AI도 알려주지 않는 엑셀 고급 차트, 클릭 순서까지 그대로 따라 만듭니다
- 머릿속 아이디어를 실제 차트로 구현
- 스파크라인·히트맵부터 폭포·덤벨·간트·게이지까지 55개 레슨
- 중간마진 없는 합리적인 가격 / 오직 아이엑셀러에서만!
📈 신간 전자책(PDF) · 375쪽 · 12,000원9,500원 · 얼리버드 11월 20일까지
AI도 알려주지 않는 엑셀 고급 차트, 클릭 순서까지 그대로 따라 만듭니다
완성 차트 미리보기 지금 구매하기1. 언제, 어떤 방법을 쓸까?
예제는 여러 가맹점에서 보낸 실적 파일을 '가맹점실적' 폴더에 모아 둔 상황입니다. 파일 이름 규칙이 제각각이고, 마감일을 넘겨 제출한 곳을 알고 싶습니다. 이런 목록은 두 방법 모두 만들 수 있으니, 먼저 내 상황에 맞는 쪽을 고르는 것이 중요합니다.
| 비교 항목 | 파워 쿼리 | VBA |
|---|---|---|
| 코딩 | 필요 없음 (메뉴 클릭) | 필요 (복사·붙여넣기로 사용 가능) |
| 목록 갱신 | [새로 고침] 한 번 | 매크로 실행 (버튼 연결 가능) |
| 폴더를 자주 바꿀 때 | 원본 경로를 따로 수정해야 함 | 실행할 때마다 선택 창으로 지정 |
| 하위 폴더의 파일 | 기본으로 함께 가져옴 | 이 글의 코드는 선택한 폴더만 읽음 |
| 파일 이름 변경·이동 | 불가 (읽기만 가능) | 가능 → 6장 참고 |
- 매번 같은 폴더의 현황만 본다 → 파워 쿼리
- 폴더를 바꿔 가며 작업하거나, 목록을 만든 뒤 파일 정리까지 한다 → VBA
- 잘 모르겠다 → 파워 쿼리로 시작하고, 파일을 직접 다뤄야 할 때 VBA 활용
2. VBA 코드와 핵심 명령 정리
영상에서 사용한 코드입니다. 복사해서 모듈에 붙여넣고 실행하시면 됩니다. ([삽입] > [모듈]에 붙여넣은 뒤, 프로시저 안을 클릭하고 F5)
Sub 파일목록만들기()
Dim ws As Worksheet, fd As FileDialog
Dim folderPath As String, fileName As String, r As Long
Set ws = ThisWorkbook.Sheets("목록")
' 폴더 선택 창
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
fd.Title = "가맹점 실적 폴더를 선택하세요"
If fd.Show <> -1 Then Exit Sub ' 취소하면 종료
folderPath = fd.SelectedItems(1)
' 기존 목록 지우기 (A~C열)
ws.Range("A2:C" & ws.Rows.Count).ClearContents
' 폴더 안의 xlsx 파일을 차례로 읽어 기록
r = 2
fileName = Dir(folderPath & "\*.xlsx")
Do While fileName <> ""
ws.Cells(r, 1).Value = fileName
ws.Cells(r, 2).Value = Round(FileLen(folderPath & "\" & fileName) / 1024, 1)
ws.Cells(r, 3).Value = FileDateTime(folderPath & "\" & fileName)
r = r + 1
fileName = Dir
Loop
' 서식과 기준 폴더 기록
If r > 2 Then
ws.Range("B2:B" & r - 1).NumberFormat = "0.0"
ws.Range("C2:C" & r - 1).NumberFormat = "yyyy-mm-dd hh:mm"
End If
ws.Range("K2").Value = folderPath
MsgBox r - 2 & "개 파일 목록을 만들었습니다.", vbInformation
End Sub
| 명령 | 하는 일 | 알아둘 점 |
|---|---|---|
FileDialog |
폴더 선택 창 표시 | 취소하면 Show가 0을 돌려주므로 반드시 종료 처리 |
Dir |
조건에 맞는 파일 이름을 하나씩 반환 | 첫 호출만 경로 지정, 이후는 Dir만. 더 없으면 빈 문자열 |
FileLen |
파일 크기(바이트) | 1024로 나누면 KB, 다시 1024로 나누면 MB |
FileDateTime |
마지막 수정 일시 | 생성일이 아니라 수정일이라는 점에 주의 |
응용. 다른 확장자도 읽고 싶을 때
Dir(folderPath & "\*.xlsx")의 *.xlsx 부분을 바꾸면 됩니다. *.csv는 CSV 파일만, *.*는 모든 파일을 읽어 들입니다.
[참고] 이 코드는 윈도우 기준입니다
경로 구분자로 \를 사용하므로 윈도우 엑셀에서 동작합니다. 맥(Mac) 엑셀에서는 경로 처리 방식이 달라 그대로 쓰기 어렵습니다. 제가 맥OS를 사용하지 않아서 이에 대한 정보는 제공할 수 없습니다. 죄송!
3. 마감일 초과 표시, 설정 순서
영상에서는 완성된 시트를 보여드렸는데, 이 부분의 설정 순서를 정리합니다. 원리는 '수정일이 마감일 다음 날 0시 이후이면 기한초과'입니다. 마감일 당일 밤 11시에 수정된 파일은 정상, 다음 날 0시 이후는 초과로 보는 겁니다. 마감일은 특정 셀에 입력해 두고 수식이 이를 참조하게 합니다.
① 점검 열 수식 (D2 셀, 아래로 채우기)
=IF(C2>=$K$1+1, "기한초과", "")
② 조건부 서식으로 행 전체에 색 입히기
- 목록 범위(A2:D11 등)를 선택합니다.
- [홈] 탭 > [조건부 서식] > [새 규칙] > '수식을 사용하여 서식을 지정할 셀 결정'을 선택합니다.
- 수식에
=$D2="기한초과"를 입력합니다. 열 앞에만$를 붙여야 행 전체가 같은 기준으로 칠해집니다. - [서식]에서 채우기 색을 지정하고 확인합니다.
4. 파워 쿼리: 영상 설명 보충
화면 조작은 영상을 참고하세요. 여기서는 영상에서 생략했거나 실무에서 자주 막히는 부분을 중심으로 정리합니다.
① 필요한 열만 남기는 이유
[폴더에서]로 가져오면 열이 여러 개 나오지만, 목록에 필요한 것은 Name, Date modified, Attributes 세 개입니다. 크기는 Attributes 안에 레코드 형태로 들어 있어서, 머리글 오른쪽 [확장] 단추로 Size만 추출합니다.
② 크기를 KB로 바꾸기 (영상에서 생략한 부분)
Size 열을 선택하고 [변환] 탭 > [표준] > [나누기]에 1024를 입력합니다. VBA 코드의 / 1024와 같은 역할입니다.
③ 하위 폴더 파일을 빼고 싶을 때
파워 쿼리는 하위 폴더 안의 파일까지 가져옵니다. 선택한 폴더 바로 아래의 파일만 필요하다면, 열을 제거하기 전에 Folder Path 열의 필터로 원하는 폴더 경로만 남기세요.
④ 폴더 위치가 바뀌었을 때
파워 쿼리는 처음 지정한 폴더 경로를 기억합니다. 폴더를 옮겼거나 다른 폴더로 바꾸려면 [데이터] 탭 > [데이터 가져오기] > [데이터 원본 설정]에서 경로를 수정하거나, 편집기 오른쪽 '적용된 단계'의 첫 단계(원본)를 열어 경로를 바꿉니다.
⑤ 마감일 점검 열은 어디에?
쿼리 결과 표 옆 열에 IF 수식을 넣어 두면, 새로 고침으로 행이 늘어날 때 수식도 함께 채워집니다. 단, 파워 쿼리 결과는 열 순서가 '이름, 수정일, 크기'라서 수정일이 B열입니다. 수식의 C2를 B2로 바꾸거나, 파워 쿼리 편집기에서 열 머리글을 끌어 VBA 목록과 같은 순서(이름, 크기, 수정일)로 맞춰 주세요.
5. 막혔을 때 확인할 점
| 증상 | 확인할 점 |
|---|---|
| VBA 실행 후 목록이 비어 있다 | 폴더에 .xlsx 파일이 있는지, 확장자가 다른 형식(.xls, .xlsm 등)은 아닌지 확인 |
| 수정일이 숫자(예: 46300.5)로 보인다 | 셀 서식이 날짜가 아닌 경우. 서식을 yyyy-mm-dd hh:mm로 지정 |
| '기한초과'가 하나도 안 나온다 | 마감일이 입력된 셀(영상에서는 K1)이 실제 날짜 값인지 확인 |
| 파워 쿼리에 새 파일이 안 나온다 | [새로 고침]을 눌렀는지, 쿼리 원본 경로가 맞는지 확인 |
| 매크로가 실행되지 않는다 | 상단 보안 경고 막대의 [콘텐츠 사용] 클릭, 파일이 .xlsm 형식인지 확인 |
6. 제각각인 파일 이름 한 번에 정리하기 [멤버십용]
목록을 만들어 놓고 보니 파일 이름이 엉망입니다. '강남점_9월실적', '역삼점 실적(수정)', 별 표시가 붙은 파일까지, 이대로는 관리하기 어렵습니다. 중구난방인 파일명을 점포 코드가 들어간 규칙적인 이름으로 한 번에 바꿀 수 없을까요?
가능합니다. 다만 파일 이름 변경은 파워 쿼리로는 할 수 없고, VBA로는 가능합니다. 그리고 실제 파일을 건드리는 작업이라서, 잘못됐을 때를 대비하는 안전 장치를 마련해 두는 것이 중요합니다.
멤버십 영상에서 다루는 내용
- 목록 시트에서 새 파일명을 자동으로 제안받고, 클릭 한 번으로 실제 이름 변경
- 새 이름이 비어 있거나 겹치면? 파일이 열려 있어서 바꾸지 못하면?
- 변경 내역은 어디에 남고, 실수했을 때는 어떻게 되돌릴까?
- 탐색기에서 K001, K002… 점포 코드 순서로 정리된 최종 결과 확인
이 영상은 멤버십 회원 전용 콘텐츠입니다.
파일 이름을 규칙적으로 바꾸는 방법과 안전장치 설계는 멤버십 회원 대상으로 공개합니다. 아직 회원이 아니시라면 아래 버튼으로 가입하고 지금 바로 확인해보세요.
MVP TIP — 파일을 건드리는 작업의 기본 원칙
1. 매크로·VBA는 '실행 취소'가 안 됩니다
매크로로 바꾼 파일 이름이나 삭제한 파일은 Ctrl+Z로 되돌릴 수 없습니다. 항상 백업본을 만들어 둔 후 진행하세요.
2. 파일을 바꾸는 작업에는 안전장치가 필요합니다
이름 변경처럼 되돌릴 수 없는 작업은 실행 전에 점검하고, 실행 후에 결과를 남겨 두어야 문제가 생겼을 때 대응할 수 있습니다. 이 원칙을 실제 코드로 구현한 사례는 멤버십 영상에서 다룹니다.
3. 변하는 값은 코드 밖으로 빼두세요
마감일, 기준월, 폴더 경로처럼 자주 바뀌는 값은 코드 안에 쓰지 말고 셀에 둡니다. 값만 바꿔서 다음 달에도 코드를 수정하지 않고 재사용할 수 있습니다.
자주 묻는 질문 (FAQ)
Q1. 엑셀에서 폴더 안의 파일 이름 목록을 가져오려면 어떻게 하나요?
여러 가지 방법이 있겠지만 여기서는 두 가지 방법으로 접근했습니다. 코딩 없이 하려면 [데이터] 탭 > [데이터 가져오기] > [파일에서] > [폴더에서]로 폴더를 선택하면 파일 이름, 수정일, 크기를 목록으로 가져올 수 있습니다. VBA를 사용하면 파일 이름 목록뿐 아니라 다양한 추가 작업도 가능합니다.
Q2. 파워 쿼리와 VBA 중 무엇부터 배우는 게 좋을까요?
단순히 목록을 읽어 와서 보는 용도라면 파워 쿼리가 편리합니다. 파일을 직접 다루는 일이 필요해지는 시점에 VBA를 더하는 것이 효율적입니다.
Q3. 하위 폴더의 파일까지 목록에 넣을 수 있나요?
파워 쿼리는 기본적으로 하위 폴더의 파일까지 가져옵니다. 이 글의 VBA 코드는 선택한 폴더만 읽으며, 하위 폴더까지 읽으려면 코드를 추가로 확장해야 합니다.
Q4. 목록을 보고 파일 이름도 한 번에 바꿀 수 있나요?
VBA로 가능합니다. 다만 되돌릴 수 없는 작업이라 안전장치를 갖춰서 만들어야 하며, 구체적인 방법은 멤버십 영상에서 다룹니다.
Q5. 매크로가 포함된 파일은 어떻게 저장하나요?
[다른 이름으로 저장]에서 'Excel 매크로 사용 통합 문서(.xlsm)' 형식으로 저장해야 코드가 유지됩니다. xlsx로 저장하면 매크로가 사라집니다.
마치며
폴더 현황을 목록으로 만드는 일은 파워 쿼리로도, VBA로도 가능하며 어떤 방식을 택할지는 작업 방식에 따라 달라집니다. 영상으로 흐름을 익히시고, 이 글의 선택 기준과 점검 목록을 참고해 본인의 폴더에 적용해 보시기 바랍니다.
목록을 만든 다음 단계인 '파일 이름 정리'가 궁금하시다면, 안전장치까지 갖춘 완성 과정을 멤버십 회원용 풀 버전에서 확인해보세요.

