-
VBA/파워포인트/사진정리 - 1.1. 파일명 배열코딩/vba 2024. 1. 12. 15:26728x90
파일명 배열 생성용 유틸리티 GetFiles()
GetFiles()는 파일 이름들을 수집하고 정렬해서 배열을 반환한다. 이 프로시저는 이 프로젝트 외 다른 용도로도 사용가능하므로 유틸리티다.
실수로 경로명에 "\"를 누락해도 상관없도록 경로명을 처리한다.
폴더를 검색하고 디렉토리가 아닌 파일명만 배열에 저장한다. 이 때 경로명과 파일명을 합쳐 저장한다. 그리고 프로시저가 정상 작동하는지를 확인할 수 있도록 파일명을 '직접 실행'창에 출력한다.
그 후 VBA에는 배열을 정렬하는 함수가 없으므로 GetFiles()는 다시 서브 프로시저를 사용해서 배열을 정렬하고 최종적으로 배열을 반환한다.
728x90Function GetFiles(ByVal folderPath As String, ByVal fileExtension As String) As Variant ' 폴더의 파일을 배열로 저장하고, 배열을 정렬하여 반환 -> folderPath & fileName Dim files() As Variant Dim fileName As String If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\" End If fileName = Dir(folderPath & fileExtension) Dim i As Integer i = 0 Do While fileName <> "" Debug.Print fileName ' 디렉토리가 아닌 파일만 저장 If Not GetAttr(folderPath & fileName) = vbDirectory Then ReDim Preserve files(i) files(i) = folderPath & fileName i = i + 1 End If fileName = Dir Loop Debug.Print "Files counts: " & (UBound(files) - LBound(files) + 1) SortArray files, 1, 1 GetFiles = files End Function
배열 정렬
728x90'코딩 > vba' 카테고리의 다른 글
VBA/파워포인트/사진정리 - 1.2. 사진 삽입 서브 프로시저 (0) 2024.01.13 VBA/파워포인트/사진정리 - 1.1.1. 배열 정렬 (2) 2024.01.12 VBA/파워포인트/사진정리 - 1. 사진 삽입 (1) 2024.01.12 VBA/배열을 함수로부터 전달받기 (0) 2024.01.11 VBA/Shape간 순환 (0) 2024.01.11