본문 바로가기
엑셀/VBA

VBA에서 엑셀파일(워크북)을 변수로 지정하기

by 큐브빌드 2024. 7. 6.
반응형

VBA를 사용하다 보면 엑셀 파일.

 

즉, 워크북을 변수로 지정해야 될 필요가 있습니다.

 

예를 들면 다른 파일에 있는 무엇인가를 참조해야 되는 경우겠지요.

 

그러다 보면 어떤 문제가 있냐 하면...

 

현재 실행되어 있는 엑셀 파일 일 수도 있고, 현재 실행되지 않은 엑셀 파일 일 수도 있습니다.

 

현재 실행 상태라면 해당 워크북을 찾아서 변수에 저장하면 되고

 

현재 미실행 상태라면 해당 워크북을 실행한 뒤 변수에 저장하면 됩니다.

 

그래서 해당 내용을 코드로 표현하면

 

Sub FileLoad()
Dim WB As Workbook '워크북 저장할 변수
Dim ThisWB As Workbook

Set ThisWB = ThisWorkbook

On Error Resume Next
    Filename = "파일이름.xlsm" '확장자까지 모두 포함
    Set WB = Workbooks(Filename)
On Error GoTo 0

If WB Is Nothing Then
    OpenFile = "C:\ABC\파일이름.xlsm" '여기는 폴더 주소까지 포함
    Set WB = Workbooks.Open(OpenFile)
End If

ThisWB.Activate '이렇게 하면 원래 엑셀 파일을 활성화
WB.Activate '이렇게 하면 파일이름.xlsm 파일을 활성화



End If
End Sub

 

 

사실 엑셀파일을 이동시킬 이유는 크지 않지만... 뭐 나름 편리합니다.

 

 

반응형

댓글