EXCEL VBA

엑셀 VBA 매크로 포함된 파일 실행 시 엑셀 화면은 보이지 않고 매크로만 실행되게 하기

카루루1007 2024. 8. 14. 11:25
728x90
반응형

유저폼과 같은 것을 사용하거나
기타 다른 용도로 VBA 코드를 작성하고
프로그램을 실행할 때
엑셀 화면은 보이지 않게 하고
VBA로 작성한 프로그램만 보이게 하는 방법
입니다.

이번 블로그에서는
유저폼을 하나 만들고
엑셀 매크로 파일 실행 시
엑셀 화면은 보이지않고
유저폼만 화면에 나타나게 하는 방법을 알아보겠습니다.

728x90

[ 유저폼 만들기 ]

 

먼저 유저폼을 하나 만들어 보겠습니다.
예시를 위한 유저폼이므로
별다른 설정 없이
기본 유저폼만 추가합니다.

Alt + F11을 눌러 VBA 편집기 실행
마우스 우클릭 후
삽입사용자 정의 폼을 눌러
사용자 정의폼을 추가합니다.

이렇게 추가하면 아래 그림과 같이 나타납니다.

폼 아래에 IserForm1이 추가 되었고
사용자 정의폼이 만들어졌습니다.

 

반응형

[ 엑셀 파일을 열 때 엑셀 화면 숨기기 ]

 

이제 아래 그림과 같이
모듈을 하나 추가합니다.

엑셀 파일이 열 때 자동으로 실행되는 코드를 작성해야합니다.


엑셀 파일이 열 때 자동으로 작동하는 코드를 만드는 방법은
아래 블로그를 참고하시면 됩니다.

엑셀 VBA 엑셀 파일을 열 때마다 첫 번째 시트가 선택되게 만들기 (tistory.com)

작성할 코드는 아래와 같습니다.

Private Sub Workbook_Open()
    Application.Visible = False
    UserForm1.Show
End Sub

이 코드는 엑셀 어플리케이션은 숨기고
UserForm을 화면에 보여주라는 의미입니다.

여기서 UserForm1은 기본으로 설정되는
UserForm의 이름입니다.
아래 그림과 같이 확인이 가능합니다.

그 다음 아래 그림의 사용자 정의폼을 더블클릭하면
사용자 정의폼에서 어떤 행동이 이루어 졌을 때
코드를 입력할 수 있습니다.

UserForm QueryClose 를 선택하고 파란색 네모 부분은 지워줍니다.

 

그리고 아래와 같이 코드를 작성해줍니다.

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    Application.Quit
End Sub

위 코드는
사용자 정의폼을 닫을 경우
엑셀도 같이 종료하라는 의미의 코드입니다.

이렇게 작성 후 파일을 xlsm 확장자로 저장하면 됩니다.

처음 실행하면 보안경고가 나타나지만
콘텐츠 사용을 누르면
아래 그림과 같이 사용자 정의폼이 나타나고
그 이후에는 바로 실행이 됩니다.

 

[ 코드 수정하기 ]

 

하지만 문제가 하나 생깁니다.
이렇게 하면 코드를 수정하고 싶을 때
엑셀 화면이 보이지 않아
코드를 수정할 수가 없습니다.

이럴 경우
먼저 엑셀을 실행한 후
VBA 편집기를 실행해 줍니다.

VBA 편집기 실행 후에
앞서 만들었던 파일을 불러옵니다.

그러면 엑셀 화면은 보이지 않지만
VBA 편집기는 그대로 남아있어
코드를 수정할 수 있습니다.

VBA 편집기에서 일시정지 버튼을 누르고 수정하시면 됩니다.

혹시 다른 더 좋은 방법이 있다면 댓글 부탁드립니다.  

 

여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.

엑셀 공부하기
VBA 공부하기

728x90
반응형