오늘 끝나면
매크로 기록기
- ✓매크로 기록기의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 매크로이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
클릭이 그대로 코드가 됨 — 첫 매크로 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
엑셀 VBA · 02
매크로
기록기
기록을 켜고 엑셀을 만진 다음 정지한다.
그 사이의 모든 동작이 전부 VBA 코드로 바뀐다.
코드 한 줄 몰라도 첫 매크로는 오늘 만들어진다.
기록하고 조작하고 정지하면 코드가 남는다
매크로 기록기는 엑셀에 붙은 받아쓰기 기계다. 내가 한 클릭을 그대로 받아 적는다.
순서는 셋이다.
개발 도구 탭에서 매크로 기록으로 기록을 켠다.
평소처럼 셀을 누르고 값을 넣고 색칠한다.
기록 중지를 누르면 멈춘다.
정지하는 순간, 그 사이의 모든 동작이 전부 코드로 정리돼 있다.
한 줄도 안 쳤는데 매크로가 한 개 생긴다. 첫 코드는 손이 아니라 기록기가 써 준다.
그 코드는 Module 안에 Sub Macro1() … End Sub 모양으로 들어간다.
클릭 하나가 코드 한 줄이 된다
기록기는 마법이 아니다. 동작마다 정해진 코드 한 줄을 딱 붙여 준다.
A1을 클릭하면 Range("A1").Select가 적힌다.
값을 치면 선택된 칸에 ActiveCell.Value = 100이 적힌다.
굵게 버튼을 누르면 Selection.Font.Bold = True가 적힌다.
그래서 기록된 코드를 보면 내가 방금 한 일이 순서대로 적혀 있다.
Range와 ActiveCell은 어디를 바꿨는지, .Value와 .Font는 무엇을 바꿨는지를 말한다.
이 용어들은 3강과 4강에서 제대로 판다. 지금은 클릭 하나가 코드 한 줄이라는 감만 잡으면 된다.
직접 기록해 보기
오른쪽이 미니 기록기다. 시트를 만지면 아래 Sub Macro1() 안에 VBA 코드가 한 줄씩 쌓인다.
셀을 클릭해 선택하고 값을 넣고 굵게나 색칠을 눌러 보자.
매번 대응하는 코드가 정확히 한 줄씩 적힌다. 숫자는 = 100, 글자는 = "합계"처럼 따옴표가 자동으로 붙는다.
정지를 눌러 보면 차이가 보인다.
정지 상태에선 셀이 바뀌어도 코드가 안 늘어난다. 기록이 멈췄기 때문이다.
다시 기록 시작을 누르면 그 다음 조작부터 또 쌓인다. 이것이 켜고 끄는 받아쓰기다.
| A | B | C | |
|---|---|---|---|
| 1 | |||
| 2 | |||
| 3 |
셀을 클릭하면 여기에 코드가 쌓인다
지금 한 조작이 그대로 코드가 된다. 정지를 누르면 기록만 멈춘다.
기록된 코드를 읽으며 배운다
기록기의 진짜 쓸모는 자동화가 아니라 교과서다. 내가 아는 동작이 어떤 코드인지 보여 준다.
모르는 기능을 코드로 쓰고 싶을 때, 일단 기록을 켜고 그 기능을 손으로 한 번 해 본다.
정지하고 코드를 열면, 그 기능의 정확한 VBA 문법이 적혀 있다.
정렬이나 필터, 서식 같은 복잡한 동작도 이렇게 정답 코드를 얻을 수 있다.
그 코드를 읽고 손보면서 Range, Selection, .Value 같은 말이 몸에 붙는다.
기록기는 엑셀이 직접 채점해 주는 VBA 문제집이다.
Range("B2").Select
↳B2를 선택했다
ActiveCell.Value = "합계"
↳글자 "합계"를 넣었다
Selection.Font.Bold = True
↳굵게 만들었다
기록기로는 거기까지다
기록기는 시작점이지 종착점은 아니다. 내가 한 동작만 그대로 받아 적을 뿐이다.
기록기는 판단을 못 적는다.
“값이 100보다 크면 빨강” 같은 조건(If)이나 “1000줄 다 돌려라” 같은 반복(For)은 기록되지 않는다.
기록된 코드는 종종 .Select가 잔뜩 붙은 길고 둔한 코드다.
그래서 흐름은 이렇게 간다.
기록기로 뼈대를 얻은 다음, 코드를 읽으며 군더더기를 지우고, 변수와 조건과 반복을 손으로 더한다.
그 손으로 더하는 법이 3강부터의 내용이다. 기록기는 그 문 앞까지 데려다준다.
Q. 매크로 기록기의 가장 큰 가치는? (코드를 알아서 다 짜 줌 · 조건·반복 자동 생성 · 내 조작을 코드로 바꿔 학습·자동화의 시작점 · 버그를 잡아 줌)
정답은 내 조작을 코드로 바꿔 학습·자동화의 시작점이 되는 것이다.기록기는 내가 한 동작만 1:1로 받아 적는다. 조건이나 반복 같은 판단은 만들지 못한다.
대신 코드를 한 줄도 모를 때 첫 매크로를 손에 쥐여 주고, 그 코드를 읽으며 문법을 배우게 한다.
뼈대는 기록기로 얻고, 변수와 조건과 반복은 그 위에 손으로 얹는다.
- +셀 선택 · 값 입력
- +글꼴 · 색 · 서식
- +정렬 · 필터 클릭
- +내가 한 동작 그대로
- –조건 (If 값>100)
- –반복 (1000줄 돌기)
- –변수에 담아 재사용
- –판단 · 자동 흐름