[엑셀/VBA] 현재 엑셀 파일의 경로 구하기

(아래 내용은 오피스 365의 엑셀에서 테스트 되었습니다.)

현재 작업 중인 엑셀 파일의 경로를 구하는 몇 가지 방법은 아래와 같습니다.

.Path

.Path 는 현재 파일의 경로를 구하기 위해 가장 흔하게 사용되는 방법입니다. 사용 방법도 아주 간단합니다. 아래와 같이 Dir 이라는 변수를 만들고 그 변수에 현재 작업 중인 엑셀 파일의 디렉터리 경로를 담을 수 있습니다.

Dim Dir as String
Dir = ThisWorkbook.path

사용법이 간단한 .Path 는 아래와 같은 특징을 가지고 있습니다.

  • 현재 파일이 아직 저장되지 않은 통합 문서라면 아무 것도 반환되지 않음
  • 파일 주소의 경로 끝부분에 /(슬래시) 또는 \ 가 붙지 않음
  • OneDrive에 저장된 파일의 경우 로컬 드라이브 경로가 아닌 http:// 로 시작하는 온라인 경로를 반환함

CurDir()

찾아보니 CurDir() 이라는 내장 함수 역시 .Path 와 같은 역할을 한다는 것을 알게 되었습니다.

역시나 사용법은 간단합니다.

Dim Dir as String
Dir = CurDir()

.Path 의 예제와 마찬가지로 Dir 이라는 변수를 만들고 그 변수에 현재 파일의 경로를 담는 간단한 과정입니다. CurDir() 은 아래와 같은 특징을 가지고 있습니다.

  • .Path 와 마찬가지로 경로 끝부분에 \ 가 붙지 않음
  • 함수의 투입 변수로 드라이브를 지정할 수 있음(예시: CurDir("C"))
  • OneDrive에 저장된 파일의 경우 로컬 드라이브 경로가 아닌 System32 폴더를 반환함

.Path 또는 CurDir() 모두 사용법이 간단하기 때문에 본인 취향에 맞게 어떤 것을 사용해도 무방 할 것 같습니다만, 원드라이브에 저장된 파일을 이용하는 분들은 제대로 된 경로가 표시되지 않기 때문에 사용에 주의를 기울여야 하겠습니다.

마이크로소프트의 원드라이브에 저장된 파일에서 위 두가지 방법을 이용해 제대로된 로컬 경로를 구하는 방법은 추가적으로 포스팅 하겠습니다.

끝.

참고자료