[ DIR 함수 소개 ]
DIR 함수는 엑셀 VBA에서
파일 시스템을 탐색하는 데 사용되는 내장함수입니다.
이 함수는 주어진 경로와 일치하는,
즉 선택된 폴더의
첫번째 파일의 이름을 반환하며,
이후에는 DIR 함수를 다시 호출하면
해당 폴더의 다음 파일이름을 반환합니다.
즉, DIR 함수는 처음 호출될 때
지정된 폴더의 모든 파일을 찾아내고
이후에 다시
DIR 함수가 호출 될때마다
해당 폴더의 다음 파일을 반환합니다.
[ 예시코드 ]
Sub 파일목록확인()
Dim MyFile As String
Dim MyPath As String
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
If fd.Show = -1 Then
MyPath = fd.SelectedItems(1)
End If
MyFile = Dir(MyPath & "\\")
Do While MyFile <> ""
Debug.Print MyFile
MyFile = Dir
Loop
End Sub
※ Application.FileDialog() 에 관한 설명은 여기를 참고하시기 바랍니다.
이 코드를 실행하면 VBA의 직접실행 창에
해당 폴더의 파일이름이 나열됩니다.
아래 그림과 같이 말이죠
위 결과를 보면
몇가지 다른 확장자를 가진 파일이 섞여 있습니다.
만약 이런 경우에
[ TXT ]확장자를 가진 파일만 가지고 오고 싶다면
아래와 같이 소스코드를 수정하면 됩니다.
Sub 파일목록확인()
Dim MyFile As String
Dim MyPath As String
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
If fd.Show = -1 Then
MyPath = fd.SelectedItems(1)
End If
MyFile = Dir(MyPath & "\\")
Do While MyFile <> ""
If Right(MyFile, 4) = ".txt" Then
Debug.Print MyFile
End If
MyFile = Dir
Loop
End Sub
[ DIR 함수의 인자 ]
DIR 함수는 두개의 인자를 가집니다.
첫번째 인자는 위 코드에서 보셨다시피
폴더의 경로입니다.
두번째 인자로 가질 수 있는 것은 다음과 같습니다.
vbNormal : 값은 0이며 기본값입니다. 속성이 없는 파일을 지정합니다.
vbReadOnly : 값은 1입니다. 읽기 전용 파일과 속성이 없는 파일을 지정합니다.
vbHidden : 값은 2입니다. 숨겨진 파일과 속성이 없는 파일을 지정합니다.
vbSystem : 값은 4입니다. 시스템 파일과 속성이 없는 파일을 지정합니다.
vbVolume : 값은 8입니다. 볼륨 레이블을 지정합니다. 다른 속성이 지정되면 vbVolume은 무시됩니다.
vbDirectory : 값은 16입니다. 디렉토리나 폴더와 속성이 없는 파일을 지정합니다.
여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.
'EXCEL VBA' 카테고리의 다른 글
엑셀 열 너비 자동으로 맞추기, 입력할때마다 열 너비 자동으로 맞추기 (0) | 2023.11.24 |
---|---|
엑셀 VBA InputBox로 셀 범위 선택하고 값 채우기 (0) | 2023.10.31 |
엑셀 VBA 폴더 및 파일 선택 창 열기, Application.FileDialog() (0) | 2023.10.14 |
엑셀 VBA 시트 이름 한번에 바꾸기, 시트 이름 바꾸기 매크로 (1) | 2023.10.08 |
엑셀 VBA 시트별로 다른 파일로 저장하기, 엑셀 VBA 시트 각각 저장하기 (0) | 2023.10.07 |