|
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.
- 엑셀 버전(95,97,2000,xp,2003,2007):
* 아래줄에 질문을 작성하세요 >>
안녕하세요? 제목 그대로입니다.
구현 내용: 엑셀에서 탐색기를 실행후 폴더를 선택하면
폴더 밑의 파일과 또 하위폴더가 존재하면 해당 폴더 밑에
파일을 가져와서 리스트로 뿌리고자 합니다
현재까지 찾은 정보:
VBA에서 Shell "explorer.exe", 1을 수행하면
탐색기가 수행되는 것은 확인하였습니다
이와 비슷한 샘플이나 탐색기에서 선택된 폴더를 어떻게
리턴받는지 아이디어를 제공해 주시면 감사하겠습니다.
답변에 미리 감사드립니다.
==============[목수아들님 글에 대한 답변입니다]==============
저도 Shell은 다룰 줄 몰라서 아는 한도 내에서만 알려드립니다.
아래 방식은 엑셀 VB에 내장된 폴더 선택 대화창을 불러오고,
선택한 폴더의 경로를 따내는 코드입니다.
Sub files_()
Dim folderPath As String '폴더 경로변수
'폴더 선택 대화상자
With Application.FileDialog(msoFileDialogFolderPicker)
'대화상자 Open
.Show
'선택한 폴더가 없으면
If .SelectedItems.Count < 1 Then
'매크로 종료
Exit Sub
Else
folderPath = .SelectedItems(1)
End If
End With
Debug.Print folderPath '폴더경로 출력
End Sub
여기서 폴더 내의 파일을 입력받으려면 VB의 Dir 함수를 아셔야 합니다.
(작동 방식이 독특하기 때문에)
(Dir 함수는 폴더나 폴더 내 파일 명칭을 받아옵니다.)
제가 코드를 다 작성해드리기보다는
원하는 사항을 참고할 만한 블로그 주소를 안내해 드리겠습니다.
(알 만한 분들은 모두 아시는 사이트일겁니다.)
니꾸님의 블로그 : https://blog.naver.com/rosa0189/60158944220
(하위 폴더까지 모두 순환하는 기본 코드)
또 제가 운영하는 사이트에서 다루는 유사한 내용이니 참고 바랍니다.
http://ruahneuma.tistory.com/35
(하위 폴더를 순환하는 코드는 없습니다.)
(니꾸님의 블로그를 참고하여 제작한 코드입니다.)
|
|