[엑셀×VBA] 특정 디렉토리 또는 파일이 존재하는지 여부를 확인하는 방법

folder 프로그래밍 calendar_month web_traffic 5

회사에서 업무를 보면서 엑셀 VBA 를 많이 활용합니다. 그 와중에 엑셀 내부가 아닌 외부의 특정 폴더에 특정 파일이 존재하는지 여부를 확인해서 존재 여부에 따라 다른 작업을 해야 하는 상황이 발생해서 기록으로 남겨둡니다.

Dir 함수

이런 상황에서 사용할 수 있는 것이 Dir 함수입니다.

기본적으로 Dir 함수는 인수로 특정 경로 또는 경로와 파일명 조합을 String 으로 받아 확인한 후 해당 디렉토리 또는 파일이 존재한다면 그 경로를 문자열로 반환하고, 존재하지 않을 경우 빈 문자열을 반환합니다.

아래 예시를 보시죠.

Sub ifFileExist()

    Dim filePath as String
    filePath = "(존재 유무를 확인하고 싶은 경로 또는 파일명)"

    If Dir(filePath) <> "" Then
        '해당 경로에 파일이 존재 할 때 수행할 작업
    Else
        '해당 경로에 파일이 존재 하지 않을 때 수행할 작업
    End If

End Sub

위 코드가 진행되는 과정을 요약하면 아래와 같습니다.

  1. ifFileExist 라는 이름의 서브루틴 생성
  2. filePath 라는 String 형식의 변수 생성
  3. filePath 에 확인을 원하는 디렉토리 경로 또는 파일명 입력
  4. Dir 함수를 이용해 존재할 때(Dir(filePath) <> "")와 그렇지 않을 때(Else)에 대한 각각의 작업을 수행

활용 예시

Dir 함수는 아래의 경우에 활용할 수 있을 것 같습니다.

  • 특정 작업을 위해 반드시 필요한 파일이 존재하는지 여부를 사전에 확인한 후 해당 파일이 없을 경우 사용자에게 경고 메시지 출력
  • 특정 결과물을 파일로 기록하는 과정에서 사전에 같은 이름의 파일이 있는지 확인 한 후, 파일이 존재하는 경우 덮어쓰기를 실행할 지 사용자에게 확인 요청

제가 이 포스트의 제목으로 엑셀을 적어 놓긴 했는데, 사실 VBA 는 다른 MS 오피스 프로그램에도 탑재 되어 있다보니 다양한 곳, 다양한 작업을 위해 Dir 함수를 사용할 수 있겠네요.

끝.

댓글 남기기