안녕하세요, 이번 포스팅은 엑셀 매크로 VBA 폼 생성 타이틀바 X 버튼 제어 방법 대해서 알려드리겠습니다.
VBA(Visual Basic for Applications)를 사용하여 사용자정의 폼을 만들었을 때 “X” 버튼을 눌렀을 때 나오는 후속 작업에 대해서 제어할 수가 있습니다.
이는 실수로 눌렀을 때 한 번도 물어보는 작업일 수도 있기 때문에 사용자에게 조금이나마 작업하는데 도움이 되는 기능이라고 판단이 됩니다.
그럼 엑셀 매크로 VBA 폼 타이틀바 X 버튼 제어 방법 대해서 자세한 사항은 아래 내용을 확인하시면 됩니다.
목차
VBA 사용자정의 폼 생성
엑셀에서 할 때 매번 똑같은 작업이나 입력하는 항목을 사용자정의 폼을 활용하여 구현을 할 수 있습니다.
이렇게 되면 매번 동일한 작업을 하지 않아도 해당 폼에서 대부분의 작업을 수행을 할 수가 있습니다.
이렇게 만들어진 폼은 자신만의 기능과 디자인을 가지며, 엑셀 작업을 더욱 효율적으로 할 수 있습니다.
STEP 1 – 일단 VBA 사용자정의 폼 생성을 하기 위해서는 ‘개발도구’ 매뉴에서 ‘Visual Basic’ 메뉴를 클릭을 하면 아래와 같은 매크로 코드를 작업할 수 있는 작업창이 보이게 됩니다.
해당 창에서 ‘현재 통합 문서’ 라는 항목을 마우스 오른쪽 버튼을 클릭을 하게 되면 발생하는 메뉴에서 “사용자 정의 폼’ 항목을 클릭을 해주시면 됩니다.
✔ 현재 통합 문서 >> 삽입 >> 사용자 정의 폼

STEP 2 – ‘사용자 정의 폼’ 항목을 클릭을 하게 되면 아래와 같이 ‘UserForm1’ 이라는 이름의 폼이 생성이 된 것을 확인 할 수 있습니다.

VBA 엑셀 매크로 폼 X 버튼 제어 활용 예제
사용자정의 폼을 만들고 나서 이를 더 유용하게 활용하기 위해 VBA(Visual Basic for Applications)를 사용하는 경우가 많습니다.
해당 폼에서 클릭을 했을 대 발생하는 이벤트 부분을 매크로로 구현을 해줄 수 있습니다.
저는 해당 폼에서 ‘X 버튼’ 에 대한 동작 수행을 매크로로 제어를 하려고 합니다.
사용자정의 폼에서 X 버튼을 제어하기 위해서는 VBA 코드를 사용해야 합니다.
1) 생성한 사용자 정의 폼 호출 코드 구현
일단 엑셀에서 생성한 사용자 정의 폼을 띄우는 코드를 먼저 짜보도록 하겠습니다.
폼 내부 이름이 “UserForm1” 이기 때문에 해당 이름을 이용을 하여 아래 코드를 활용하여 해당 사용자 폼을 실행을 시키시면 됩니다.


✔ 사용자 정의 폼 ‘X’ 클릭 시 이벤트 예제 코드
그럼 예제 코드를 짜볼텐데, 사용자가 X 버튼을 클릭했을 때 메시지 창을 띄우는 예시코드입니다.
다음은 간단한 예제 코드입니다.
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
' X 버튼 클릭 시 동작 설정
Cancel = True ' X 버튼의 기본 동작 취소
' 여기에 원하는 동작 추가
MsgBox "X 버튼이 클릭되었습니다!", vbInformation
End If
End Sub
위에 코드를 구현하고 “X” 버튼을 클릭을 하게 되면 설정한 메시지가 나타나는 것을 확인하실 수 있습니다.

위에 코드를 조금 설명 드리면 UserForm_QueryClose는 폼이 닫히기 전에 발생하는 이벤트를 처리하는 VBA 함수입니다.
코드에서 명시된 대로, Cancel 변수를 사용하여 기본 동작을 취소하고 ‘X 버튼이 클릭되었습니다!’ 라는 메세지가 발생하게 구현을 하였습니다.
이처럼 사용자가 원하는 동작을 추가할 수 있습니다.
이렇게 하면 사용자가 실수로나 의도적으로 X 버튼을 클릭했을 때도 한 번더 종료를 할 건지 물어보면서, 의도치 않은 종료를 예방을 할 수 있습니다.
다양한 X 버튼 제어 방법
위에서는 기본적인 X 버튼 제어 방법을 살펴보았습니다.
하지만 사용자가 원하는 동작을 더 추가하고 싶을 수 있습니다.
이를 위해 다양한 방법이 존재합니다.
예를 들어, X 버튼을 눌렀을 때 폼을 닫지 않고 숨기는 방법도 있습니다.
✔ 예제 코드:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
' X 버튼 클릭 시 동작 설정
Cancel = True ' X 버튼의 기본 동작 취소
' 폼 숨기기
Me.Hide
End If
End Sub
위 코드는 X 버튼을 클릭했을 때 폼을 닫는 대신 숨기는 방법을 보여줍니다.
이렇게 하면 사용자는 폼을 닫고 나중에 다시 표시할 수 있습니다.
제가 작성한 예제 폼을 활용을 하면 해당 사용자 정의 폼 숨기는 기능 뿐만 아니라 ‘Cancel=True’ 조건값에 부합하는 경우에 원하는 이벤트를 넣을 수 있습니다.
이러한 방법들을 활용하여 엑셀 사용자정의 폼을 더 유연하게 제어할 수 있습니다.
마무리
이렇게 엑셀 매크로 VBA 폼 생성 타이틀바 X 버튼 제어 방법 대해서 알아보았습니다.
사실 개인적으로 각 잡고, 사용자폼을 구현하자라고 생각 안하면 매번 새로운 VBA 코드를 구현을 하는데, 한번 이렇게 사용자정의폼을 구현을 해놓으면 나중에 편리한 거 같습니다.
그리고 이런 폼 구성 후 VBA를 이용하면 엑셀을 더욱 유연하게 활용할 수 있으며, 사용자가 편리하게 작업을 수행할 수 있도록 도울 수 있습니다.
그럼 여러분이 엑셀을 사용하면서 이러한 기능을 활용하여 더 나은 작업 환경을 만들어보시기 바랍니다.
또한, 계속해서 새로운 기능과 팁을 찾아 공유해 드리겠습니다.
감사합니다.









