오늘 끝나면
조건과 반복
- ✓조건과 반복의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 조건과이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
If·For·Do While — 판단하고 반복 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
엑셀 VBA · 05
조건과
반복
If로 판단하고 For로 반복함.
이 둘이 자동화의 두 다리임.
행을 훑으며 조건을 처리하면 1000행도 한순간.
If…Then…Else로 판단한다
코드가 똑똑해 보이는 건 갈림길에서 스스로 고르기 때문임. 그 갈림길이 If임.
모양은 단순함. If 조건 Then ~ 참이면 할 일 ~ End If로 닫음.
엇갈린 경우까지 처리하려면 사이에 Else를 끼움.
조건은 비교임. >=, <=, =, <>(다름)로 두 값을 견줌.
여러 조건은 And · Or로 묶음.
결과는 참(True) 아니면 거짓(False), 딱 둘뿐임.
If 점수 >= 60 Then
결과 = "합격"
Else
결과 = "불합격"
End If결과는 둘 중 하나로만 갈림
For·Do While로 반복한다
판단을 한 번 잘 적어도, 행이 1000개면 1000번 적을 순 없음. 그래서 반복문이 있음.
횟수를 알 땐 For임. For i = 1 To 10 ~ Next i로 i를 1·2·3…10까지 자동으로 올림.
Step 2를 붙이면 2칸씩, Step -1이면 거꾸로 셈.
몇 번일지 모르고 “~인 동안” 돌릴 땐 Do While 조건 ~ Loop임.
데이터 끝까지(빈 칸 나올 때까지) 훑는 데 자주 씀.
어느 쪽이든 핵심은 같음 — 같은 코드 한 덩이를 컴퓨터가 알아서 여러 번 굴림.
For i = 1 To 5
' i = 1,2,3,4,5
Next iDo While Cells(i,1) <> ""
i = i + 1 ' 빈 칸 전까지
Loop몇 번일지 모를 때 — 데이터 끝까지
행을 훑으며 조건을 처리한다
실무 자동화의 90%가 이 한 패턴임. 반복으로 행을 훑고, 그 안에서 If로 골라냄.
오른쪽에서 직접 돌려봄.
For i = 1 To 8이 행을 한 칸씩 내려가고, 각 행에서 If Cells(i,1) >= 기준이 참인 셀만 칠함.
연산자와 기준값을 바꾸면 같은 루프가 다른 행을 골라냄.
[▶ 한 행씩]으로 i가 내려가며 판단하는 걸 보고, [⏭ 끝까지]로 루프 전체를 한 번에 굴려봄.
이게 합격자 표시·미입력 찾기·금액 합산 같은 일을 만드는 뼈대임.
For i = 1 To 8
If Cells(i,1) >= 70 Then 표시
End If
Next iFor 루프가 1행부터 한 칸씩 내려가며 모든 행을 자동으로 훑음. 손으로 8번 볼 걸 코드가 한 번에.
조건과 반복은 자동화의 핵심 도구
왜 굳이 코드로 적나? 눈으로 보고 칠하면 되는데.
답은 규모와 반복임.
8행이면 손이 빠름. 근데 8000행이면? 매주 새로 들어오는 시트면?
For + If를 한 번 적어두면, 행이 몇 개든 매크로 버튼 한 번에 끝남.
반복은 지치지도 빠뜨리지도 않음. 조건은 틀린 기준 없이 똑같이 판단함.
앞 강의 Dim(변수) · Cells(셀 제어)에 이 둘을 얹으면, 비로소 “사람이 하던 반복 작업”을 코드가 대신함.
8000행이면 불가능
8000행도 버튼 한 번
한 줄로 정리
오늘 둘만 챙기면 됨. If = 판단, For/Do While = 반복.
판단이 필요하면 If…Then…Else…End If.
횟수를 알면 For…Next, 모르면 Do While…Loop.
그리고 둘을 겹쳐 행을 훑으며 골라내는 패턴 — 이게 6강에서 배울 Sub·함수로 깔끔하게 묶일 재료임.
Q. 1000개 행을 똑같은 규칙으로 처리해야 함. 무엇을 씀? (① 행마다 코드 1000줄 ② 반복문 한 번 ③ Else만으로 ④ 손으로 클릭)
정답은 ② 반복문 한 번임.For i = 1 To 1000 안에 If 판단을 한 덩이 적으면, 행이 몇 개든 같은 코드가 자동으로 1000번 굴러감.
코드를 1000줄 베껴 쓰거나 손으로 클릭하는 건 반복문이 막아주는 바로 그 노동임.
| 키워드 | 하는 일 |
|---|---|
| If…Then…Else | 판단참/거짓으로 갈림 |
| For…Next | 반복(횟수 앎)i를 1→N 자동 |
| Do While…Loop | 반복(조건)~인 동안 계속 |
| For + If | 행 훑어 처리반복 속 판단 |