반복문: 지치지 않는 일꾼, For문과 Do While문
지난 글에서 우리는 데이터를 담아두는 '마법의 상자', 변수(Variable)에 대해 배웠습니다.
오늘은 그 상자를 들고 수백, 수천 번의 일을 대신 해줄 일꾼을 고용하는 방법을 배울 차례입니다.
바로 '반복문(Loop)'입니다.
왜 반복문이 필요한가?
엑셀 시트에 직원이 500명 있고, 각 직원의 이름 옆 셀에 "수고하셨습니다"라는 문구를 붙여야 한다고 상상해 보세요.
마우스로 500번 클릭하고 500번 타이핑하는 것은 사람이 할 일이 아닙니다.
하지만 컴퓨터에게 "1번 행부터 500번 행까지, 같은 작업을 반복해"라고 한 번만 지시하면 0.1초 만에 끝납니다.
이것이 반복문의 본질입니다. 사람 대신 지치지 않고, 실수 없이, 빠르게 반복하는 것.
반복문의 두 가지 종류
반복문에는 크게 두 종류가 있습니다. 사용하는 상황이 다릅니다.
| 구분 | For문 | Do While문 |
|---|---|---|
| 언제 쓰나? | 반복 횟수를 미리 알 때 | 반복 횟수를 모를 때 |
| 실생활 비유 | "마늘 10개를 다진다" | "국이 끓을 때까지 젓는다" |
| VBA 예시 상황 | 500명 직원 목록 순서대로 처리 | 빈 셀이 나올 때까지 데이터 읽기 |
① For문: 횟수를 정해놓고 반복하기
For문은 "몇 번 반복할지 처음부터 정해진 경우"에 사용합니다.
엑셀 직원 명단 500행을 순서대로 처리할 때가 딱 이 경우입니다.
구조는 이렇습니다:
For 변수 = 시작값 To 끝값
반복할 작업
Next 변수
실무 예시 — 직원 이름 옆에 문구 자동 입력:
Sub 문구자동입력()
Dim i As Integer
For i = 2 To 501 ' 2행부터 501행까지 (1행은 제목)
Cells(i, 2).Value = "수고하셨습니다" ' B열에 문구 입력
Next i
End Sub
딱 세 줄짜리 레시피로 500번의 반복 작업이 끝납니다.
변수 i가 2, 3, 4... 501까지 하나씩 증가하면서 매번 해당 행의 B열에 문구를 써 넣습니다.
💡 Step 옵션 — 2씩, 또는 거꾸로 반복하기
기본은 1씩 증가하지만, Step 키워드로 증가 폭을 바꿀 수 있습니다.
For i = 2 To 500 Step 2 ' 짝수 행만 처리 (2, 4, 6...)
For i = 500 To 2 Step -1 ' 거꾸로 처리 (500, 499, 498...)
② Do While문: 조건이 맞는 동안 반복하기
Do While문은 "언제 끝날지 모르지만, 특정 조건이 만족되는 동안 계속 반복"할 때 사용합니다.
데이터가 몇 행인지 모를 때, 빈 셀이 나올 때까지 읽어야 할 때 딱 맞습니다.
구조는 이렇습니다:
Do While 조건
반복할 작업
Loop
실무 예시 — 데이터가 있는 행까지만 처리하기:
Sub 데이터읽기()
Dim i As Integer
i = 2 ' 2행부터 시작
Do While Cells(i, 1).Value <> "" ' A열이 비어있지 않은 동안
Cells(i, 2).Value = "처리완료" ' B열에 표시
i = i + 1 ' 다음 행으로 이동
Loop
End Sub
데이터가 100행이든 10,000행이든 상관없습니다. A열이 비어있는 순간 자동으로 멈춥니다.
For문처럼 끝 번호를 미리 지정할 필요가 없어서, 데이터 양이 매일 달라지는 실무에서 특히 유용합니다.
⚠️ 주의 — 무한루프를 조심하세요
Do While문에서 가장 흔한 실수는 조건이 영원히 참이 되어 프로그램이 멈추지 않는 '무한루프'입니다.
위 예시에서 i = i + 1을 빠뜨리면 i가 계속 2에 머물러 영원히 반복됩니다. 반드시 루프 안에서 조건을 변화시키는 코드를 넣어야 합니다.
For문 vs Do While문, 어떤 걸 써야 할까?
| 상황 | 추천 | 이유 |
|---|---|---|
| 직원 명단 1행~500행 처리 | For문 | 범위가 고정되어 있음 |
| 매일 달라지는 매출 데이터 처리 | Do While문 | 행 수를 모름, 빈 셀 기준으로 종료 |
| 특정 조건이 맞는 셀만 찾기 | Do While문 | 찾는 순간 종료 가능 |
| 시트 내 모든 셀 순서대로 색칠 | For문 | 행/열 수가 정해져 있음 |
정리: 자동화의 심장이 뛰기 시작한다
오늘 배운 반복문은 지금까지 배운 개념 중 가장 강력합니다.
변수 하나만으로는 데이터를 담는 것뿐이었지만, 여기에 반복문이 붙으면 수백 개의 데이터를 자동으로 처리하는 진짜 자동화가 시작됩니다.
- For문: 횟수가 정해진 반복 — "1번부터 500번까지"
- Do While문: 조건 기반 반복 — "빈 셀이 나올 때까지"
다음 시간에는 이 반복문에 판단 능력을 심어주는 '조건문(If문)'을 배웁니다.
"만약 이 직원이 과장이면 수당을 추가하고, 아니면 그냥 넘어가라"처럼, 프로그램이 스스로 상황을 판단하고 다르게 행동하게 만드는 방법입니다.
변수 + 반복문 + 조건문, 이 세 가지가 갖춰지는 순간 여러분은 진짜 자동화 매크로를 만들 수 있게 됩니다.
'코딩으로 시간 벌기 > 코딩X수학' 카테고리의 다른 글
| [코딩X수학 개념 #3] 사칙연산과 % : 수학의 '주기성' 문제를 푸는 마법의 비밀 기호 (0) | 2026.06.17 |
|---|---|
| [코딩X수학 개념 #2] 자료형: 수학의 '수의 체계'가 상자의 종류를 결정한다? (0) | 2026.06.17 |
| [코딩X수학 개념 #1] 변수: 수학의 미지수 x가 컴퓨터 속에 들어가면? (1) | 2026.06.12 |
| 딩의 첫걸음: 데이터를 담는 마법의 상자, '변수' (엑셀 셀 주소만 알던 당신에게) (0) | 2025.09.02 |
| 엑셀 함수만으론 부족할 때: '프로그래밍적 사고'가 필요한 순간 (7) | 2025.08.27 |
