스킬캠퍼스
7강 · 이벤트와 폼
강의

오늘 끝나면

이벤트와 폼

  • 이벤트와 폼의 핵심 문제를 한 문장으로 설명한다
  • 오른쪽 실습에서 이벤트와이 어떻게 움직이는지 관찰한다
  • 다음 강의와 이어지는 한계를 말할 수 있다

실습 미션

버튼·UserForm — 클릭으로 실행 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

  • 실습의 기본값을 먼저 관찰
  • 입력값이나 모드를 한 번 이상 바꿔 결과 비교
  • 왜 결과가 바뀌었는지 한 문장으로 설명

엑셀 VBA · 07

이벤트와

지금까지 매크로는 직접 실행 버튼으로 돌렸음.
이제 버튼 클릭·시트 변경 같은 사건에 코드를 매달음.
사용자는 버튼만 누르면 됨. 그게 이벤트·폼임.

P.01엑셀 VBA · 07

이벤트 = 무슨 일이 일어났을 때

이벤트는 “무슨 일이 일어났다”는 신호임.
버튼 클릭, 셀 값 변경, 시트 열기 — 전부 이벤트임.

지금까지는 Sub를 만들고 F5나 매크로 목록에서 직접 굴렸음.
이벤트를 쓰면 사람이 어떤 행동을 한 그 순간에 코드가 알아서 깸.

엑셀은 사건마다 정해진 이름의 이벤트 프로시저를 부름.
시트 셀이 바뀌면 Worksheet_Change, 통합문서를 열면 Workbook_Open.
그 이름의 Sub에 코드를 적어두면 그 일이 날 때마다 실행됨.

사건이 코드를 깨운다
사건 → 깨어나는 코드
사건(이벤트)불리는 프로시저
버튼 클릭Button_Click가장 흔한 이벤트
셀 값 변경Worksheet_Change값이 바뀐 순간
통합문서 열기Workbook_Open파일을 열 때
시트 선택Worksheet_Activate탭을 누를 때
그 이름의 Sub에 코드를 적어두면 그 일이 날 때마다 실행됨
P.02엑셀 VBA · 07

버튼에 매크로를 연결한다

가장 흔한 이벤트는 버튼 클릭임.
시트에 버튼을 하나 놓고, 거기에 매크로를 연결함.

엑셀에는 두 종류 버튼이 있음.
양식 컨트롤 버튼은 우클릭 → “매크로 지정”으로 원하는 Sub 이름을 골라 붙임.
ActiveX 버튼은 더블클릭하면 CommandButton1_Click 이벤트 Sub가 자동으로 생김.

연결만 해두면 그 다음은 단순함.
버튼을 누르는 순간 Click 이벤트가 발생하고, 매달린 Sub가 처음부터 끝까지 한 번 돎.
매크로 목록을 열 필요도 없음. 클릭 한 번이 곧 실행임.

버튼 클릭 → 연결된 Sub 실행
버튼 ↔ 매크로 연결
[ 보고서 만들기 ]시트 위 버튼
우클릭 → 매크로 지정Click 이벤트로 연결
연결된 매크로
Sub MakeReport()
  Range("A1") = "완료"
  MsgBox "보고서 생성"
End Sub

버튼 누름 = Click 발생 = MakeReport 실행

P.03엑셀 VBA · 07

직접 눌러 보는 버튼 이벤트

오른쪽에서 직접 해봄.
버튼 셋이 각자 다른 Sub에 연결돼 있음.

더하기PlusOne(), 두 배Double(), 초기화Reset()에 매달려 있음.
누르면 그 버튼의 Click 이벤트가 연결된 Sub를 불러 셀 A1을 바꿈.

아래 로그를 보셈.
plus_Click → PlusOne()처럼 어떤 사건이 어떤 매크로를 깨웠는지 한 줄로 찍힘.
이게 이벤트가 코드를 부르는 정확한 흐름임 / 사건 → 프로시저 → 결과.

클릭 = 이벤트 · 연결된 Sub가 셀을 바꿈
버튼 이벤트 · 클릭하면 매크로가 돈다
시트 — 셀 A1
A1
3
버튼 — 눌러 보셈 (각자 다른 Sub에 연결)
PlusOne()
Double()
Reset()
실행 로그 — 이벤트가 부른 매크로

버튼을 누르면 그 버튼의 Click 이벤트가 연결된 Sub를 불러 A1을 바꿈.

클릭 = 이벤트 · 연결된 Sub = 매크로 · 셀 변화 = 결과

P.04엑셀 VBA · 07

UserForm — 입력 UI를 띄운다

버튼만으로 부족할 때가 있음.
이름·수량·날짜를 받아야 하면 UserForm을 띄움.

UserForm은 시트 위에 뜨는 작은 입력 창임.
텍스트 상자(TextBox), 목록(ComboBox), 버튼(CommandButton)을 끌어다 붙여 만듦.
코드에서 UserForm1.Show로 화면에 띄움.

확인 버튼의 Click 이벤트 안에서 입력값을 읽어 셀에 씀.
예: Range("A1").Value = TextBox1.Value.
폼은 결국 “예쁜 입력 칸 + 버튼 이벤트”임. 새 문법이 아니라 지금 배운 이벤트의 응용임.

폼에서 입력받아 시트로 보낸다
UserForm — 입력 창
주문 입력×
TextBox1 · 품목
연필
TextBox2 · 수량
12
확인 Click 이벤트
Range("A1") = TextBox1.Value
Range("B1") = TextBox2.Value

폼 = 입력 칸 + 버튼 이벤트. 새 문법 아님

P.05엑셀 VBA · 07

사용자는 클릭만, 코드는 알아서

이벤트·폼의 목적은 하나임.
코드를 모르는 사람도 버튼만 눌러 매크로를 굴리게 하는 것임.

나만 쓰는 매크로는 F5로 돌려도 됨.
근데 동료에게 넘길 자동화라면 “여기 버튼 누르세요” 한마디로 끝나야 함.
버튼·폼이 그 다리임. 안쪽 복잡한 Sub는 숨고, 밖에는 버튼만 보임.

정리하면 — 사건에 코드를 매다는 게 이벤트, 입력을 받는 창이 폼임.
8강에서는 이 버튼 하나에 실전 보고서 생성 매크로를 통째로 연결함.
오늘 만든 “클릭 → 실행” 구조가 그 마지막 자동화의 손잡이임.

Q. 버튼을 누르면 매크로가 도는 원리는? (셀이 매크로를 호출 · 클릭 이벤트에 코드 연결 · 엑셀이 자동 추측 · F5가 눌림)정답은 클릭 이벤트에 코드 연결임.
버튼을 누르면 Click 이벤트가 발생하고, 거기 연결해 둔 Sub(매크로)가 실행됨.
엑셀이 알아서 추측하는 게 아니라, 우리가 미리 그 버튼의 이벤트에 매크로를 매달아 둔 것임.
사건 → 연결된 프로시저 → 결과 / 이게 이벤트 실행의 전부임.
직접 실행 vs 이벤트 자동 실행
직접 실행 vs 이벤트
직접 실행
개발 탭 열기
매크로 목록
고르고 실행

코드 아는 사람용

이벤트 실행
[ 버튼 ]
Click 이벤트 발생
매크로 자동 실행

누구나 클릭 한 번

3줄 요약

  1. 1버튼·UserForm — 클릭으로 실행
  2. 2이벤트와 폼은 매크로 → 변수·셀 → 조건·반복 → 폼 → 자동화 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

이벤트와

버튼·UserForm — 클릭으로 실행

매크로

기록하거나 작성해 실행하는 자동화 코드

Sub

실행 단위가 되는 프로시저