반응형

 

반복문: 지치지 않는 일꾼, 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문)'을 배웁니다.

"만약 이 직원이 과장이면 수당을 추가하고, 아니면 그냥 넘어가라"처럼, 프로그램이 스스로 상황을 판단하고 다르게 행동하게 만드는 방법입니다.

변수 + 반복문 + 조건문, 이 세 가지가 갖춰지는 순간 여러분은 진짜 자동화 매크로를 만들 수 있게 됩니다.

반응형

+ Recent posts