오늘 끝나면
Range와 Cells
- ✓Range와 Cells의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 Range와이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
셀을 코드로 읽고 쓰기 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
엑셀 VBA · 04
Range와
Cells
셀을 손으로 클릭하던 걸 코드로 가리킴.
Range("A1") 와 Cells(2,3) 두 가지 길.
.Value 하나로 읽고 또 씀.
셀을 코드로 가리킨다
엑셀에서 셀 하나 고치려면 마우스로 클릭하고 타이핑함. VBA는 그 “어느 칸”을 코드로 가리킴.
가리키는 방법은 두 가지임.
Range("A1") 은 엑셀 주소 그대로 적는 길.
Cells(1, 1) 은 행 번호·열 번호로 적는 길.
둘 다 같은 칸 A1 을 가리킴.
셀을 가리켰으면 끝에 .Value 를 붙여 값을 다룸.
Range("A1").Value는 “A1 칸의 값” 이라는 뜻임.
이제 셀이 마우스가 아니라 코드로 움직임.
A1 칸을 클릭하고 → 10 을 타이핑 → 엔터
Range("A1").Value = 10
Range vs Cells — 같은 칸, 다른 표기
헷갈리는 건 딱 하나임. Cells 는 (행, 열) 순서임. 가로세로 거꾸로 아님.
Range 는 사람이 보는 주소 "C2" 를 따옴표에 적음.
Cells 는 숫자 두 개로 적음 — 먼저 행, 그다음 열.
그래서 C2 는 2행 3열 → Cells(2, 3) 임.
그럼 왜 둘 다 씀?
주소를 알 땐 Range("C2") 가 읽기 편함.
행·열을 숫자로 굴려야 할 땐 Cells(i, j) 가 강함 — 다음 강 반복문에서 빛을 봄.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | ||||
| 2 | C2 | |||
| 3 | ||||
| 4 |
행 먼저 · 열 나중 — C2 는 2행 3열
.Value로 읽고 쓴다
오른쪽에서 직접 해봄. 코드 한 줄 적고 실행하면 가상 시트에 값이 박힘.
핵심은 .Value 가 = 의 어느 쪽에 있느냐임.
x = Range("A1").Value 는 A1 값을 읽어서 가져옴.
Range("A1").Value = 10 은 A1 에 10 을 씀.
왼쪽이면 쓰기, 오른쪽이면 읽기. 같은 .Value 인데 위치로 방향이 갈림.
Cells(2, 3).Value = "납품" 처럼 문자열도 됨 — 따옴표로 감싸면 글자임.
직접 칸을 바꿔 가며 셀이 코드로 채워지는 걸 보셈.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 12 | 매출 | ||
| 2 | ||||
| 3 | ||||
| 4 |
한 줄 적고 실행을 눌러 보셈.
범위를 한 번에 다룬다
Range 는 한 칸만 아니라 범위도 가리킴. Range("A1:A3") 처럼 콜론으로 묶음.
묶은 범위엔 통째로 같은 값을 쓸 수 있음.
Range("A1:C1").Value = 0 한 줄로 세 칸이 다 0 이 됨.
색을 칠하거나(.Interior.Color) 지우는(.ClearContents) 것도 범위째 한 번에 됨.
한 칸씩 도는 건 Cells(i, j) 의 i, j 를 숫자로 바꿔 가며 반복할 때 함.
이 숫자 주소가 반복문과 만나면 표 전체를 코드로 훑게 됨 — 다음 5강의 핵심임.
지금은 “셀도, 범위도 코드로 가리킨다” 만 챙기면 됨.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 0 | 0 | 0 | |
| 2 | ||||
| 3 |
콜론(:)으로 묶으면 여러 칸이 한 덩어리
시트를 지정한다
그냥 Range("A1")만 적으면 “지금 보고 있는 시트” 의 A1 임. 위험할 때가 있음.
엉뚱한 시트가 활성화돼 있으면 엉뚱한 칸에 씀.
그래서 앞에 시트를 박아 줌 — Worksheets("Sheet1").Range("A1").Value = 10.
이러면 어느 시트가 화면에 떠 있든 정확히 그 시트의 A1 에 씀.
정리하면 셀 주소는 시트 → 셀 → 값 순으로 점을 찍어 좁혀 감.
Worksheets("Sheet1").Cells(2, 3).Value 처럼.
코드가 늘어날수록 이 시트 지정 한 줄이 사고를 막아 줌.
Q. Cells(2, 3) 이 가리키는 셀은? (A2 · C2 · B3 · C3)
정답은 C2 임.Cells 는 (행, 열) 순서라 2행 3열을 가리킴.
2행 → 숫자 2, 3열 → A·B·C 중 세 번째 C.
그래서 2행 3열 = C2 = Range("C2") 임.
Worksheets("Sheet1").Cells(2,3).Value = 10
점(.)으로 이어 붙여 정확히 한 칸을 찍음