오늘 끝나면

VBA란

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

실습 미션

엑셀을 코드로 자동화 — 반복 작업을 한 번에 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

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

엑셀 VBA · 01

VBA란
무엇인가

VBA는 엑셀 안에 든 프로그래밍 언어다.
매번 손으로 하던 반복 작업을 코드로 적어 자동화한다.
클릭 수십 번이 버튼 하나로 줄어든다.

P.01엑셀 VBA · 01

VBA = 엑셀에 내장된 프로그래밍 언어

VBA는 Visual Basic for Applications의 줄임말이다. 엑셀, 워드, 파워포인트 같은 오피스 안에 통째로 들어 있는 프로그래밍 언어다.

따로 깔 게 없다. 엑셀에서 Alt + F11을 누르면 코드를 적는 창(VB 편집기)이 바로 열린다.
그 창에 코드를 적고 실행하면, 옆 시트의 셀들이 코드가 시키는 대로 움직인다.

엑셀을 마우스로 클릭해 쓰던 사람이라면, VBA는 그 클릭을 글로 적어두는 또 하나의 손이다.
손은 하나지만 지치지 않고 똑같이 일한다.

엑셀 안 · 또 하나의 작업 공간
엑셀 = 시트 + 코드
워크시트, 마우스로 쓰던 곳
A1
A2
B1
B2
C1
C2
코드가 셀을 움직인다
VB 편집기, Alt + F11
Sub 정리()
  Range("A1").Value = 100
End Sub
한 파일 안에 시트와 코드가 같이 산다
P.02엑셀 VBA · 01

매크로 = 기록하고 실행하는 코드

매크로라는 말이 자주 나온다. 매크로는 따로 있는 마법이 아니다. 한 묶음으로 저장해 둔 VBA 코드를 매크로라 부른다.

엑셀에는 매크로 기록기가 있다. 기록 버튼을 누르고 평소처럼 마우스로 작업하면, 그 동작이 그대로 VBA 코드로 적힌다.
기록을 멈추면 코드 한 덩어리가 생기고, 다음부터는 그 매크로를 실행만 하면 같은 작업이 반복된다.

코드 한 덩어리는 Sub 이름() ... End Sub 모양으로 묶인다.
이 묶음 하나가 매크로 하나다.

클릭을 코드로 · 코드를 다시 실행
기록하고 코드로, 다시 실행
기록 중인 클릭
1셀 선택
2굵게
3노랑 채우기
4가운데 정렬
저장된 매크로
Sub 강조()
  Selection.Font.Bold
  Selection.Interior
  Selection.Halign
End Sub
다음부터는▶ 매크로 실행
P.03엑셀 VBA · 01

왜 자동화하나, 반복·실수·시간

자동화의 이유는 반복이다.

한 번 하는 일이면 손이 더 빠르다. 그런데 같은 정리를 매주, 수백 행마다 해야 하면 얘기가 달라진다. 손작업 시간은 행 수만큼 그대로 늘지만, 매크로는 행이 늘어도 거의 그대로다.

게다가 사람은 반복하면 실수한다. 한 줄쯤 빠뜨리거나 잘못 붙여넣는다.
매크로는 규칙대로만 움직이니 같은 실수를 안 한다. 자동화는 시간뿐 아니라 정확성도 같이 가져간다.

손으로 N번 vs 매크로 한 번
자동화 전후 비교 · 직접 돌려 본다
처리할 행 수200
처리 시간
손으로 N번13분 20초
매크로 한 번30.4초
누적 실수
1
손으로
0
매크로

200행 처리하면 매크로가 26 빠르고, 손으로는 실수가 1 끼어든다.

규칙을 한 번 적어두면, 행이 늘수록 격차가 벌어진다.

P.04엑셀 VBA · 01

어디에 쓰나, VBA의 부품들

VBA로 적는 코드는 몇 가지 부품의 조합이다. 지금 다 외울 필요 없다. 이름만 눈에 익혀두면 된다.

값을 담을 때는 Dim으로 변수를 선언한다.
셀을 가리킬 때는 RangeCells를 쓴다.
판단은 If로 하고, 반복은 For로 한다.

작업을 묶어 재사용할 때는 SubFunction으로 만들고, 버튼을 누르거나 시트가 바뀔 때 저절로 돌게 하는 건 이벤트다.
이 부품들을 3강부터 하나씩 손에 쥐어 본다.

앞으로 배울 코드 조각 미리보기
VBA 코드의 부품들
키워드하는 일
Dim변수 선언Dim n As Long
Range / Cells셀 가리키기Range("A1")
If판단If n > 0 Then
For반복For i = 1 To 10
Sub / Function작업 묶기Sub 정리()
이벤트자동 실행Worksheet_Change
P.05엑셀 VBA · 01

정리, 반복을 코드로 넘긴다

VBA의 핵심은 한 줄로 요약된다. 사람이 반복하던 엑셀 작업을 코드로 적어 컴퓨터에 넘기는 것이다.

한 번 잘 적은 매크로는 버튼 하나로 수십 번의 클릭을 대신한다. 행이 많아질수록, 같은 일을 자주 할수록 이득이 커진다.

Q. VBA의 쓸모를 한마디로 하면? (예쁜 차트 그리기 · 엑셀 반복 작업을 코드로 자동화 · 인터넷 검색 · 그림 편집)정답은 엑셀 반복 작업을 코드로 자동화다.
VBA는 엑셀 안에 든 프로그래밍 언어로, 매번 손으로 하던 일을 코드로 적어 버튼 한 번에 돌린다.
시간을 줄이고 실수를 없애는 게 핵심이다.
VBA가 바꾸는 하루 일과
하루 일과가 바뀐다
VBA 전 · 매번

클릭 수십 번 · 매번 반복

VBA 후 · 한 번
▶ 매크로 1개

버튼 하나로 끝 · 실수 0

3줄 요약

  1. 1엑셀을 코드로 자동화 — 반복 작업을 한 번에
  2. 2VBA란은 매크로 → 변수·셀 → 조건·반복 → 폼 → 자동화 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

VBA란

엑셀을 코드로 자동화 — 반복 작업을 한 번에

매크로

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

Sub

실행 단위가 되는 프로시저