[땡큐엑셀vba & 엑셀매크로] 폴더의 파일목록, 파일갯수 출력 사용자 정의 함수
엑셀vba예제2020. 7. 29. 00:00


'http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=102020101&docId=278999625&page=1#answer1
'
'안녕하세요. 현재 폴더안에 특정 파일수를 파악해서 알려주는 VBA를 사용중인데 속도가 너무 느려서요.
'꼭 사용자 정의 함수 형태로 만들어야 합니다.
'다른 형태로 알려 주는것들은 저도 이것 저것 가지고 있는데 사용자 정의 함수 형태로 만들어야 합니다.
'도스에서 CMD 에서 DIR로 파일수 떨궈서 알아 내는것하고 너무 속도 차이가 나서 사용하는데 문제가 많습니다.
'폴더당 10개 이런 수준이면 금방 하는데
'대상이 보통 폴더당 1,000개~2,000개의 jpg 파일이 있고 100개 정도의 폴더를 검색합니다. (네트워크 드라이버로 NAS 스토리지 접속)
'고수님들의 답변 부탁 드립니다. (파일 첨부 합니다.)
'source by 땡큐엑셀vba & 엑셀매크로
'
'해당경로의 jpg파일갯수를 출력합니다.
Function TQjpg(strPath)
Dim cmd As String
Dim res
'윈도우를 구동하는 쉘 프로그램(cmd 명령창)
Dim goWSH: Set goWSH = CreateObject("WScript.Shell")
' cmd창에서 dir 경로\*.* | find "jpg" /c 한것과 같습니다. /c 옵션을 사용하면 숫자가 나옵니다.
cmd = "cmd.exe /c dir " & strPath & "\*.* | find ""jpg"" /c "
Dim aRet: Set aRet = goWSH.exec(cmd)
res = CLng(aRet.stdout.readall())
TQjpg = res
End Function
'
'source by 땡큐엑셀vba & 엑셀매크로
'
'해당경로의 jpg파일리스트를 출력합니다.
'
Function TQList(strPath)
Dim cmd As String
Dim res
'윈도우를 구동하는 쉘 프로그램(cmd 명령창)
Dim goWSH: Set goWSH = CreateObject("WScript.Shell")
'dir /w 는 파일명만 출력합니다.
cmd = "cmd.exe /c dir /w " & strPath & "\*.* | find ""jpg"" "
Dim aRet: Set aRet = goWSH.exec(cmd)
res = aRet.stdout.readall()
TQList = res
End Function
cmd_dir을이용한파일갯수및파일리스트_땡큐엑셀vba.xlsm
0.02MB

'엑셀vba예제' 카테고리의 다른 글
[땡큐엑셀vba & 엑셀매크로] 셀사이 사이에 빈칸넣기 (0) | 2020.07.31 |
---|---|
[땡큐엑셀vba & 엑셀매크로] 옆셀에 a,b,c 붙여 추가하기 (0) | 2020.07.30 |
[땡큐엑셀vba & 엑셀매크로] yyyy.mm.dd 포맷으로 바꾸는 사용자정의 함수 (0) | 2020.07.28 |
[땡큐엑셀vba & 엑셀매크로] 최대값의 이름 나열하기-사용자정의함수 (0) | 2020.07.27 |
[땡큐엑셀vba & 엑셀매크로] 수만장의 사진을 엑셀에 넣기 (0) | 2020.07.26 |