본문 바로가기

파워컴퓨팅/컴퓨터활용

EXCEL VBA - 다른파일 스크립트 호출 및 종료

VBA코드의 재사용및 관리를 위하여 해당 데이터가 들어있는 엑셀에서는 비지니스 로직이 들어있는 코드를 생성하지 않는다.
하나의 엑셀파일에 모든 VBA코드를 작성/관리하고 데이터가 있는 엑셀파일에서 해당 기능을 호출하는 것.

이전에는 데이터엑셀이 열릴때 스크립트들어있는 엑셀을 같이 열도록 매크로를 지정하였으나
스크립트가 필요한경우만 스크립트엑셀파일을 로딩. 작업후 닫도록 함.



1. 폼에 양식을 이용해서 버튼 생성
2. 버튼에 매크로를 생성하여 지정
3. 매크로에 아래 코드 수정하여 기입.

Sub Macro1()
    'Application.Run ThisWorkbook.Path & "\..\테이블관리\VBA_Script.xls!Menu"

    'Application.Run "'D:\Work\테이블관리\VBA_Script.xls'!Menu"
    
    Dim strPathName As String
    Dim strFIleName As String
    Dim strMethod As String
    Dim varParam1 As Variant
    
    strPathName = "D:\Work\테이블관리\" 'ActiveWorkbook.Path
    strFIleName = "VBA_Script.xls"
    strMethod = "buildscript"
    varParam1 = 1
    Application.Run "'" & strPathName & strFIleName & "'!" & strMethod, varParam1
    'ActiveWindow.ActivateNext
    Windows(strFIleName).Activate
    ActiveWindow.Close

End Sub