sourcecode

VBA에서 Excel 파일 이름/경로를 가져오는 방법

codebag 2023. 4. 28. 20:34
반응형

VBA에서 Excel 파일 이름/경로를 가져오는 방법

예를 들어, 저는 제 엑셀 파일 sample.xls 안에 VBA를 쓰고 있습니다.이제샘플의 전체 경로를 얻고 싶습니다. VBA의 xls.제가 그걸 어떻게 합니까?

VBA를 의미하는 경우 FullName(전체 이름)을 사용할 수 있습니다. 예:

strFileFullName = ThisWorkbook.FullName

(댓글에 의해 고려된 바와 같이: 전자가 사용되었습니다.ActiveWorkbook.FullName다른 사무실 파일이 열려 있고 활성화되어 있는 경우 오류가 발생할 가능성이 높습니다.그러나 여기서 사용자 @user7296559가 언급한 것처럼 매크로를 다른 파일에 저장하여 매크로를 사용하는 파일의 파일 이름을 정말 원하는 경우,ActiveWorkbook실행 시 활성화가 보장되는 경우 올바른 선택일 수 있습니다.)

모든 응답(전체 이름, 경로, 파일 이름)을 제공하는 간단한 대안입니다.

Dim FilePath, FileOnly, PathOnly As String

FilePath = ThisWorkbook.FullName
FileOnly = ThisWorkbook.Name
PathOnly = Left(FilePath, Len(FilePath) - Len(FileOnly))
   strScriptFullname = WScript.ScriptFullName 
   strScriptPath = Left(strScriptFullname, InStrRev(strScriptFullname,"\")) 

경로만 필요한 경우 가장 간단한 방법은 다음과 같습니다.

PathOnly = ThisWorkbook.Path

파일 이름 없이 경로만 필요한 경우:

ActiveWorkbook.Path

D:\폴더

파일 이름을 가진 파일 경로가 필요한 경우:

ActiveWorkbook.FullName

D:\폴더\샘플.xls

파일 이름만 필요한 경우:

ActiveWorkbook.Name

샘플을 반환할 것입니다.xls

따라서 파일 경로와 파일 이름을 결합하여 전체 디렉터리를 가져오려면 ""를 사이에 추가하는 것을 잊지 마십시오.그렇지 않으면 를 사용하는 것이 더 간단합니다.경로.

활성 워크북입니다.FullName은 VBA 매크로가 다른 Excel 워크북에 저장되어 있지만 매크로가 있는 곳이 아니라 편집 중인 Excel의 세부 정보를 얻고자 하는 경우에 더 좋을 것 같습니다.

파일이 같은 파일에 있으면 상관없지만 다른 파일에 있고 매크로가 있는 위치가 아닌 데이터가 있는 파일을 원하는 경우에는 Active Workbook이 두 시나리오를 모두 처리하기 때문에 사용할 수 있습니다.

이를 위한 보편적인 방법은 다음과 같습니다.

Function FileName() As String
    FileName = Mid(Application.Caption, 1, InStrRev(Application.Caption, "-") - 2)
End Function

언급URL : https://stackoverflow.com/questions/1895616/how-to-get-the-excel-file-name-path-in-vba

반응형