Note: The other languages of the website are Google-translated. Back to English

폴더 및 하위 폴더의 모든 파일을 워크 시트에 나열하는 방법은 무엇입니까?

하위 폴더에있는 파일을 포함하여 폴더의 모든 파일 이름을 워크 시트에 나열 해 본 적이 있습니까? 실제로 Excel에서 폴더 및 하위 폴더의 파일 이름을 직접 나열 할 수있는 방법은 없지만 오늘은이 작업을 해결하는 몇 가지 빠른 트릭을 소개하겠습니다.

VBA 코드로 폴더 및 하위 폴더의 모든 파일 이름 나열

Excel 용 Kutools를 사용하여 폴더 및 하위 폴더의 모든 파일 이름을 빠르고 쉽게 나열하십시오.


일반적으로 Excel에는이 작업을 처리하는 기본 제공 기능이 없지만 다음 VBA 코드를 적용하여이 문제를 해결할 수 있습니다.

1. 파일 이름을 나열 할 새 워크 시트를 활성화합니다.

2. 누르고 ALT + F11 Excel에서 키를 클릭하고 응용 프로그램 용 Microsoft Visual Basic 창.

3. 딸깍 하는 소리 끼워 넣다 > 모듈을 클릭하고 다음 코드를 모듈 창.

VBA 코드 : 폴더 및 하위 폴더의 모든 파일 이름 나열

Sub MainList()
'Updateby Extendoffice
Set folder = Application.FileDialog(msoFileDialogFolderPicker)
If folder.Show <> -1 Then Exit Sub
xDir = folder.SelectedItems(1)
Call ListFilesInFolder(xDir, True)
End Sub
Sub ListFilesInFolder(ByVal xFolderName As String, ByVal xIsSubfolders As Boolean)
Dim xFileSystemObject As Object
Dim xFolder As Object
Dim xSubFolder As Object
Dim xFile As Object
Dim rowIndex As Long
Set xFileSystemObject = CreateObject("Scripting.FileSystemObject")
Set xFolder = xFileSystemObject.GetFolder(xFolderName)
rowIndex = Application.ActiveSheet.Range("A65536").End(xlUp).Row + 1
For Each xFile In xFolder.Files
  Application.ActiveSheet.Cells(rowIndex, 1).Formula = xFile.Name
  rowIndex = rowIndex + 1
Next xFile
If xIsSubfolders Then
  For Each xSubFolder In xFolder.SubFolders
    ListFilesInFolder xSubFolder.Path, True
  Next xSubFolder
End If
Set xFile = Nothing
Set xFolder = Nothing
Set xFileSystemObject = Nothing
End Sub
Function GetFileOwner(ByVal xPath As String, ByVal xName As String)
Dim xFolder As Object
Dim xFolderItem As Object
Dim xShell As Object
xName = StrConv(xName, vbUnicode)
xPath = StrConv(xPath, vbUnicode)
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.Namespace(StrConv(xPath, vbFromUnicode))
If Not xFolder Is Nothing Then
  Set xFolderItem = xFolder.ParseName(StrConv(xName, vbFromUnicode))
End If
If Not xFolderItem Is Nothing Then
  GetFileOwner = xFolder.GetDetailsOf(xFolderItem, 8)
Else
  GetFileOwner = ""
End If
Set xShell = Nothing
Set xFolder = Nothing
Set xFolderItem = Nothing
End Function

4. 모듈에 코드를 붙여 넣은 후 F5 이 코드를 실행하는 키와 매크로 대화 상자가 나타나면 메인리스트 매크로 이름을 클릭 한 다음 달리기 버튼, 스크린 샷 참조 :

폴더 하위 폴더의 문서 목록 파일 1

5. 그리고에 검색 창에서 하위 폴더를 포함한 모든 파일 이름을 나열 할 폴더를 선택하십시오. 스크린 샷을 참조하십시오.

폴더 하위 폴더의 문서 목록 파일 2

6. 폴더를 지정한 후 OK 버튼을 클릭하고 폴더 및 하위 폴더의 모든 파일 이름이 A2 셀의 현재 워크 시트에 나열되었습니다. 스크린 샷을 참조하십시오.

폴더 하위 폴더의 문서 목록 파일 3
1
폴더 하위 폴더의 문서 목록 파일 4

위의 코드를 사용하면 파일 이름 만 나열 할 수 있습니다. 때로는 파일 크기, 파일 유형, 생성 시간, 포함 폴더 등과 같은 다른 속성을 나열해야합니다. Excel 용 Kutools 유용한 기능이 있습니다. 파일명 목록,이 기능을 사용하면 폴더 및 하위 폴더에있는 모든 또는 특정 유형의 파일 이름을 빠르게 나열 할 수 있습니다.

Excel 용 Kutools : 300 개 이상의 편리한 Excel 추가 기능으로 30 일 동안 제한없이 무료로 사용해 볼 수 있습니다..

설치 후 Excel 용 Kutools, 다음 단계를 수행하십시오.

1. 딸깍 하는 소리 Enterprise > 수입 수출 > 파일명 목록, 스크린 샷 참조 :

2. 에서 파일명 목록 대화 상자에서 다음 작업을 수행하십시오.

A: 클릭 폴더 하위 폴더의 문서 목록 파일 7버튼을 눌러 파일 이름을 나열하려는 폴더를 선택하십시오.

B: 목록에서 나열 할 파일 형식을 지정합니다. 파일 유형 섹션;

C: 표시 할 파일 크기 단위를 선택합니다. 파일 크기 단위 안내

주의 사항: 하위 폴더의 파일 이름을 나열하려면 하위 디렉터리에 파일 포함, 당신은 또한 확인할 수 있습니다 숨겨진 파일 및 폴더 포함 당신이 필요로. 확인하면 하이퍼 링크 만들기 옵션을 선택하면 각 파일 이름과 폴더에 대한 하이퍼 링크가 생성됩니다.

지금 다운로드 및 무료 평가판!

3. 그런 다음 OK 버튼을 클릭하면 선택한 폴더 및 하위 폴더에 포함 된 모든 파일이 새 워크 시트에 다음 속성과 함께 표시됩니다. 스크린 샷보기 :

폴더 하위 폴더의 문서 목록 파일 8

이 파일 이름 목록 유틸리티에 대한 자세한 내용을 보려면 클릭하십시오.

Excel 용 Kutools를 지금 다운로드하고 무료로 평가하십시오!


Excel 용 Kutools: 300 개 이상의 편리한 Excel 추가 기능으로 30 일 동안 제한없이 무료로 사용해 볼 수 있습니다. 지금 다운로드 및 무료 평가판!

최고의 사무 생산성 도구

Excel용 Kutools는 대부분의 문제를 해결하고 생산성을 80% 증가시킵니다.

  • 재사용: 빠르게 삽입 복잡한 공식, 차트 그리고 이전에 사용한 모든 것; 셀 암호화 암호로; 메일 링리스트 생성 이메일 보내기 ...
  • 슈퍼 포뮬러 바 (여러 줄의 텍스트와 수식을 쉽게 편집 할 수 있습니다.) 레이아웃 읽기 (많은 수의 셀을 쉽게 읽고 편집합니다.) 필터링 된 범위에 붙여 넣기...
  • 셀 / 행 / 열 병합 데이터 손실없이; 셀 내용 분할; 중복 행 / 열 결합... 중복 셀 방지; 범위 비교...
  • 중복 또는 고유 선택 행; 빈 행 선택 (모든 셀이 비어 있음); 슈퍼 찾기 및 퍼지 찾기 많은 통합 문서에서; 무작위 선택 ...
  • 정확한 사본 수식 참조를 변경하지 않고 여러 셀; 참조 자동 생성 여러 시트에; 글 머리 기호 삽입, 확인란 등 ...
  • 텍스트 추출, 텍스트 추가, 위치 별 제거, 공간 제거; 페이징 부분합을 만들고 인쇄합니다. 셀 내용과 주석 간 변환...
  • 슈퍼 필터 (다른 시트에 필터 구성표 저장 및 적용) 고급 정렬 월 / 주 / 일, 빈도 등 특수 필터 굵은 기울임 꼴로 ...
  • 통합 문서와 워크 시트 결합; 키 열을 기반으로 테이블 병합; 데이터를 여러 시트로 분할; xls, xlsx 및 PDF 일괄 변환...
  • 300개 이상의 강력한 기능. Office / Excel 2007-2021 및 365를 지원합니다. 모든 언어를 지원합니다. 기업 또는 조직에서 쉽게 배포할 수 있습니다. 전체 기능은 30일 무료 평가판입니다. 60일 환불 보장.
kte 탭 201905

Office Tab은 Office에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다.

  • Word, Excel, PowerPoint에서 탭 편집 및 읽기 사용, Publisher, Access, Visio 및 Project.
  • 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 만듭니다.
  • 생산성을 50% 높이고 매일 수백 번의 마우스 클릭을 줄입니다!
officetab 하단
코멘트 (20)
아직 평가가 없습니다. 가장 먼저 평가하세요!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
좋은 글 감사합니다 :D
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
친애하는,이 멋진 유틸리티에 감사드립니다 .....!!! 아닐쿠마르
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이 쿼리가 A2 대신 B2 셀에서 나열된 파일 이름을 가져오도록 하는 방법은 무엇입니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕, 사티시,
다음 코드는 선택한 셀에 파일 이름을 넣는 데 도움이 됩니다. 시도해 보십시오.

서브 메인리스트()
오류에 대한 다음 재개
Set xRg = Application.InputBox("파일 이름을 넣을 셀을 선택하십시오:", "KuTools For Excel", Selection.Address, , , , , 8)
xRg가 아무것도 없으면 Sub를 종료하십시오.
xRg = xRg(1)로 설정
폴더 설정 = Application.FileDialog(msoFileDialogFolderPicker)
If Folder.Show <> -1 다음 Sub 종료
xDir = Folder.SelectedItems(1)
ListFilesInFolder(xRg, xDir, True) 호출
최종 하위
하위 ListFilesInFolder(ByVal xRg를 범위로, ByVal xFolderName을 문자열로, ByVal xIsSubfolders를 부울로)
Dim xFileSystemObject를 개체로
Dim xFolder를 개체로
Dim xSubFolder를 개체로
Dim xFile을 개체로
희미한 rowIndex As Long
xFileSystemObject 설정 = CreateObject("Scripting.FileSystemObject")
xFolder = xFileSystemObject.GetFolder(xFolderName) 설정
행 인덱스 = 1
xFolder.Files의 각 xFile에 대해
xRg.Formula = xFile.Name
xRg = xRg.Offset(rowIndex) 설정
행 인덱스 = 1
다음 xFile
If xIsSubfolders 다음
xFolder.SubFolders의 각 xSubFolder에 대해
ListFilesInFolder xRg, xSubFolder.Path, True
다음 xSubFolder
END IF
xFile 설정 = 없음
xFolder 설정 = 없음
xFileSystemObject 설정 = 없음
최종 하위
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
엄청난!!! 사랑해, 고마워
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
확실하지 않지만 .. 긴 폴더를 고려합니까? 비슷한 코드를 작성했는데 폴더/파일 경로가 256자를 초과하면 실패합니까? 생각 좀 해주세요?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
유익한 글 정말 감사합니다!
목록을 자동으로 업데이트하고 변경 사항을 파악하려면 어떻게 해야 합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이것은 재귀 호출을 얻기 위해 내 코드를 변환하는 데 도움이 되었지만 개체를 ​​사용하는 방식이 궁금합니다. 내 개체를 통합 문서, 워크시트 또는 파일 시스템 개체로 정의하는 것을 선호합니다. (예를 들어 dim wbDest as excel.workbook, dim wsDest as excel.worksheet. 이렇게 하면 활성 시트가 ​​무엇인지에 대해 걱정할 필요가 없습니다.

.show - if.show <>-1 의 사용에 대해서도 궁금했는데, if.show = false 를 사용하면 사람들이 이해하기 더 쉬울 것 같다는 느낌을 지울 수 없습니다.

그리고 대상에 쓰는 면에서 셀과 수식을 사용하는 것이 먼 길을 가는 것처럼 느껴졌습니다.

예를 들어 내 코드에는
wsDest.Range("B" & CurRow) = fil.name
(CurRow = 현재 행)

비하하는 것이 아니라 개인의 취향이 아닌 다른 이유로 이렇게 하시는지 궁금합니다. - 항상 배우고자 하는 의지가 있는 분


하지만 그것과는 별개로 도움을 주셔서 감사합니다
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
작업 요청에 도움이 된 이 코드에 감사드립니다. 이제 이러한 결과를 추가 변환을 위해 Access로 가져올 수 있습니다. 감사합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
위 코드의 하위 "GetFileOwner()"는 사용되지 않습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, 점프잭입니다.
위의 코드는 내 Excel에서 잘 작동합니다. 어떤 Excel 버전을 사용합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
극도의 우아함!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
ByVal xIsSubfolders As Boolean 매개변수의 목적은 무엇입니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
내 VBA는 변수 폴더가 정의되지 않았다고 말합니다. 왜 그런지 아는 사람?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
VBA에 정말 새롭습니다. 위의 코드를 어떻게 사용하지만 파일 경로가 내장되어 있어 매번 검색할 필요가 없습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이봐, 그래서 전체 목록에서 확장자를 추출해야 한다면 어디에서 변경해야 합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
MAC에서도 작동합니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
취소를 누를 때까지 폴더 대화 상자를 재활용하고 다시 실행하도록 코드를 수정했습니다. 불행히도 일부 오류가 생성됩니다.1. 하위 폴더가 선택한 폴더에 포함되면 다음으로 선택된 폴더는 순서가 맞지 않습니다.2. 선택한 폴더에 하위 폴더가 포함되면 추가한 폴더 수에 따라 취소 버튼을 반복하고 반복해야 합니다.
암호:
서브 메인리스트()
'업데이트바이 Extendoffice
폴더 설정 = Application.FileDialog(msoFileDialogFolderPicker)
If folder.Show <> -1 그런 다음 Sub 종료
xDir = 폴더.SelectedItems(1)
ListFilesInFolder(xDir, True) 호출
End SubSub ListFilesInFolder(ByVal xFolderName을 문자열로, ByVal xIsSubfolders를 부울로)
Dim xFileSystemObject를 개체로
Dim xFolder를 개체로
Dim xSubFolder를 개체로
Dim xFile을 개체로
희미한 rowIndex As Long
xFileSystemObject 설정 = CreateObject("Scripting.FileSystemObject")
xFolder = xFileSystemObject.GetFolder(xFolderName) 설정
rowIndex = Application.ActiveSheet.Range("A65536").End(xlUp).Row + 1
xFolder.Files의 각 xFile에 대해
Application.ActiveSheet.Cells(rowIndex, 1).Formula = xFile.Name
행인덱스 = 행인덱스 + 1
다음 xFile
If xIsSubfolders 다음
xFolder.SubFolders의 각 xSubFolder에 대해
ListFilesInFolder xSubFolder.Path, True
다음 xSubFolder
END IF
xFile 설정 = 없음
xFolder 설정 = 없음
xFileSystemObject 설정 = 없음
최종 하위

어떤 아이디어?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
죄송합니다... 잘못된 코드(아래)를 제공했습니다. 여기에 수정한 코드가 있습니다.
암호:
서브 메인리스트()
오류에 대한 다음 재개
Dim xFileSystemObject를 개체로
Dim xFolder를 개체로
Dim xSubFolder를 개체로
Dim xFile을 개체로
희미한 rowIndex As Long
변종으로 희미한 답변
대답 = 거짓
Application.FileDialog(msoFileDialogFolderPicker) 사용
.Title = "폴더 선택"
.AllowMultiSelect = 거짓
폴더 설정 = Application.FileDialog(msoFileDialogFolderPicker)
폴더.Show = -1이면
xDir = 폴더.SelectedItems(1)
다른
서브 종료
END IF


ListFilesInFolder(xDir, True) 호출
최종 하위

하위 ListFilesInFolder(ByVal xFolderName을 문자열로, ByVal xIsSubfolders를 부울로)
xFileSystemObject 설정 = CreateObject("Scripting.FileSystemObject")
xFolder = xFileSystemObject.GetFolder(xFolderName) 설정
rowIndex = Application.ActiveSheet.Range("A65536").End(xlUp).Row + 1

' 워크시트에 공백을 추가한 다음 폴더 이름 추가
행인덱스 = 행인덱스 + 1
Application.ActiveSheet.Cells(rowIndex, 1) 사용
.값 = xFolder.Name
.글꼴.크기 = 12
.Font.FontStyle = "굵은 기울임꼴"

행인덱스 = 행인덱스 + 1

xFolder.Files의 각 xFile에 대해
Application.ActiveSheet.Cells(rowIndex, 1).Formula = xFile.Name
행인덱스 = 행인덱스 + 1
다음 xFile
If xIsSubfolders 다음
xFolder.SubFolders의 각 xSubFolder에 대해
ListFilesInFolder xSubFolder.Path, True
다음 xSubFolder
행인덱스 = 행인덱스 + 1
END IF

xFile 설정 = 없음
xFolder 설정 = 없음
xFileSystemObject 설정 = 없음

메인리스트 호출
최종 하위


이 댓글은 사이트의 중재자에 의해 최소화되었습니다
좋은 작품, 정확히 내가 만들려고 했던 것입니다. 그러나 이것은 1000% 더 좋습니다.
아직 코멘트가 없습니다
여러분의 의견을 남겨
게스트로 게시
×
이 게시물 평가 :
0   등장 인물
추천 위치

Follow Us

저작권 © 2009 - WWW.extendoffice.com. | 판권 소유. 에 의해 구동 ExtendOffice. | | 사이트 맵
Microsoft 및 Office 로고는 미국 및 / 또는 기타 국가에서 Microsoft Corporation의 상표 또는 등록 상표입니다.
Sectigo SSL로 보호