컴퓨터 공부/엑셀 & VBA

[엑셀vba] 엑셀없이 사용자 정의 폼을 실행해보자

도 박사 2020. 8. 31. 23:39
반응형

엑셀vba를 다루면서 왜 항상 엑셀이 실행되야 할까란 의문을 품었다.

(너무 당연한 소리아닌가.. 엑셀vba니까 엑셀이 실행돼야지?)

 

그래서 vba를 쓸 수 있는 Visual Studio 2019 community 프로그램을 설치했는데

 

어떻게 써야할지 몰라서 안쓰고 있다...

 

혹시 엑셀로 어떻게 안될까 싶어서 구글링하고 연구해본 결과

 

엑셀없이 엑셀 사용자 정의폼을 실행 시키는건 불가능 한 듯 보였다..

 

하지만...

  

뚜둔 엑셀없이 사용자 정의폼 실행!

와우 엑셀없이 사용자 정의폼이 실행되네??? 

 

개쩌는걸 발견한듯?? ㅋㅋ

 

그러나 .. . .

 

엑셀없이 실행될 수 없는 운명인듯...

이거슨 눈속임에 지나지 않았다 . .. ..

 

그래도 엑셀없이 실행된거 같은 느낌을 준다.

 

엑셀을 실행시키면 열린 엑셀파일은 재빨리 눈 앞에서 사라지고 사용자 정의폼을 실행시킨다.

 

정의폼에서 작업이 끝나고 닫기를 누르면 눈 앞에서 사라진 엑셀도 꺼지도록 설계했다.

 

처음 시작 할 때 잠깐 눈에 띄는거 말곤 엑셀을 볼 수 없다. 

 

이정도면 나름 괜찮은 ?? ㅋㅋ

 


코드

Option Explicit

Private Sub Workbook_Open()

    Dim Excel_Ap As Excel.Application
    
    Set Excel_Ap = ThisWorkbook.Application
    
    Excel_Ap.ActiveWorkbook.Application.Visible = False
    
    UserForm1.StartUpPosition = 0
    UserForm1.Top = 200
    UserForm1.Left = 600
    
    UserForm1.Show
    
    Excel_Ap.ActiveWorkbook.Application.Visible = True
    
    'Excel_Ap.ActiveWorkbook.Application.Quit
    
    'Set Excel_Ap = Nothing
    
End Sub

 

코드 추가할 곳: 현재_통합_문서

위 코드는 엑셀 파일이 실행되면 바로 vba 코드가 작동되야 하기때문에 현재_통합_문서에 코드를 작성 해야한다.

 

 

Excel_Ap.ActiveWorkbook.Application.Visible = False  '현재 실행된 엑셀 파일만 안보이게됨. (버로우)

 

userform1.startupposition = 0  '시작 위치 0 설정

userform1.top = 200 '유저폼 띄어지는 위치 설정 ,위아래

userform1.left = 600  '유저폼 좌우위치 설정

 

 


이 매크로의 무시무시한 점은 실행하고 사용자 정의폼을 닫을 때 열려있던 모든 엑셀이 다 닫힘 ㅋㅋㅋㅋ

 

수행의 길은 멀고도 험난하구먼

 

좀 더 좋은 방법을 생각해 봐야할듯

 

좀 더 좋은 방법 생각나서 수정함.


 

반응형