[엑셀×VBA] 특정 디렉토리 또는 파일이 존재하는지 여부를 확인하는 방법
회사에서 업무를 보면서 엑셀 VBA 를 많이 활용합니다. 그 와중에 엑셀 내부가 아닌 외부의 특정 폴더에 특정 파일이 존재하는지 여부를 확인해서 존재 여부에 따라 다른 작업을 해야 하는 상황이 발생해서 기록으로 남겨둡니다.
Dir 함수
이런 상황에서 사용할 수 있는 것이 Dir
함수입니다.
기본적으로 Dir
함수는 인수로 특정 경로 또는 경로와 파일명 조합을 String
으로 받아 확인한 후 해당 디렉토리 또는 파일이 존재한다면 그 경로를 문자열로 반환하고, 존재하지 않을 경우 빈 문자열을 반환합니다.
아래 예시를 보시죠.
Sub ifFileExist()
Dim filePath as String
filePath = "(존재 유무를 확인하고 싶은 경로 또는 파일명)"
If Dir(filePath) <> "" Then
'해당 경로에 파일이 존재 할 때 수행할 작업
Else
'해당 경로에 파일이 존재 하지 않을 때 수행할 작업
End If
End Sub
위 코드가 진행되는 과정을 요약하면 아래와 같습니다.
ifFileExist
라는 이름의 서브루틴 생성filePath
라는String
형식의 변수 생성filePath
에 확인을 원하는 디렉토리 경로 또는 파일명 입력Dir
함수를 이용해 존재할 때(Dir(filePath) <> ""
)와 그렇지 않을 때(Else
)에 대한 각각의 작업을 수행
활용 예시
이 Dir
함수는 아래의 경우에 활용할 수 있을 것 같습니다.
- 특정 작업을 위해 반드시 필요한 파일이 존재하는지 여부를 사전에 확인한 후 해당 파일이 없을 경우 사용자에게 경고 메시지 출력
- 특정 결과물을 파일로 기록하는 과정에서 사전에 같은 이름의 파일이 있는지 확인 한 후, 파일이 존재하는 경우 덮어쓰기를 실행할 지 사용자에게 확인 요청
제가 이 포스트의 제목으로 엑셀을 적어 놓긴 했는데, 사실 VBA 는 다른 MS 오피스 프로그램에도 탑재 되어 있다보니 다양한 곳, 다양한 작업을 위해 Dir
함수를 사용할 수 있겠네요.
끝.