VBA에서 현재 워크 시트의 경로를 얻는 방법은 무엇입니까?


141

추가 기능으로 매크로를 작성했으며 현재 실행중인 현재 워크 시트의 경로를 가져와야합니다. 어떻게해야합니까? 파일 경로를 얻으려면 어떻게해야합니까 (디렉토리 만 해당)?


워크 시트가 주어지면 부모 통합 문서가 저장된 폴더를 알고 싶습니까?
Mathias

답변:


264

사용 Application.ActiveWorkbook.Path(통합 문서 이름없이) 그냥 경로 자체 또는 Application.ActiveWorkbook.FullName경로를 가진 통합 문서의 이름입니다.


24
활성 통합 문서는 활성화 된 통합 문서에 따라 다릅니다. Thisworkbook.path 사용
Alwyn Miranda

6
둘 다 물론 다른 상황에서 유용합니다. 매크로가 추가 통합 문서 (ThisWorkbook.path)에 상주했지만 사용자가 필요로하는 다른 통합 문서 (ActiveWorkbook.path)에 대해 코드를 실행해야한다는 의미에서 원래 질문을했습니다.
BradC

2
항상 명시 적이어야합니다.이 통합 문서 인 경우 application.thisworkbook.path 여야합니다. 통합 문서가 열려있는 경우 이름을 set으로 정의한 다음 application.Variablename.path (또는 전체 경로)로 정의해야합니다.
Selkie

@Selkie 코드 자체 가 통합 문서를 열면 반드시 확인하십시오. 그러나 이것이 단순히 추가 기능 통합 문서에 상주하고 매크로를 호출 할 때 사용자가 현재 열려있는 통합 문서에서 작동해야하는 도우미 매크로 인 경우 ActiveWorkbook필요한 것입니다.
BradC

3
Excel.ActiveWorkbook.Path파일이 적어도 한 번 저장된 경우에만 작동합니다. 또한 파일이 저장되지 않은 Excel.ActiveWorkbook.FullName경우 파일 이름 만 반환합니다. 통합 문서가 저장되었는지 확인 하는 것이 좋습니다 .
ChrisB

37

가지고 항상 좋은 :

Dim myPath As String     
Dim folderPath As String 

folderPath = Application.ActiveWorkbook.Path    
myPath = Application.ActiveWorkbook.FullName

27

매크로가 실행되는 통합 문서의 경로를 얻으려면 사용하십시오 Application.ThisWorkbook.Path.
Application.ActiveWorkbook.Path때로는 예기치 않은 결과가 발생할 수 있습니다 (예 : 매크로가 여러 통합 문서간에 전환되는 경우).


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.