스킬캠퍼스

오늘 끝나면

Range와 Cells

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

실습 미션

셀을 코드로 읽고 쓰기 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

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

엑셀 VBA · 04

Range와
Cells

손으로 클릭하던 셀을 코드로 가리킨다.
Range("A1")Cells(2,3), 가리키는 길은 두 가지다.
.Value 하나로 값을 읽고 또 쓴다.

P.01엑셀 VBA · 04

셀을 코드로 가리킨다

엑셀에서 셀 하나를 고치려면 마우스로 클릭하고 타이핑한다. VBA는 그 “어느 칸”을 코드로 가리킨다.

가리키는 방법은 두 가지다.
Range("A1") 은 엑셀 주소를 그대로 적는 길이다.
Cells(1, 1) 은 행 번호와 열 번호로 적는 길이다.
둘 다 같은 칸 A1 을 가리킨다.

셀을 가리켰으면 끝에 .Value 를 붙여 값을 다룬다.
Range("A1").Value는 “A1 칸의 값” 이라는 뜻이다.
이제 셀이 마우스가 아니라 코드로 움직인다.

마우스 클릭이 코드 한 줄로
클릭 한 번 = 코드 한 줄
손으로, 마우스

A1 칸을 클릭하고 10 을 타이핑한 뒤 엔터를 친다

코드로, VBA

Range("A1").Value = 10

셀 가리키기 + .Value + 값 = 셀 한 칸 제어
P.02엑셀 VBA · 04

Range vs Cells, 같은 칸 다른 표기

헷갈리는 건 딱 하나다. Cells(행, 열) 순서다. 가로세로가 거꾸로가 아니다.

Range 는 사람이 보는 주소 "C2" 를 따옴표 안에 적는다.
Cells 는 숫자 두 개로 적는다. 먼저 , 그다음 이다.
그래서 C2 는 2행 3열, 즉 Cells(2, 3) 이다.

주소를 알 때는 Range("C2") 가 읽기 편하다.
행과 열을 숫자로 굴려야 할 때는 Cells(i, j) 가 강하다.

A1 = Cells(1,1) · C2 = Cells(2,3)
같은 칸 · 두 가지 표기
ABCD
1
2C2
3
4
RangeRange("C2")
Cells (행, 열)Cells(2, 3)

행이 먼저, 열이 나중. C2 는 2행 3열이다

P.03엑셀 VBA · 04

.Value로 읽고 쓴다

핵심은 .Value= 의 어느 쪽에 있느냐다.
x = Range("A1").Value 는 A1 값을 읽어서 가져온다.
Range("A1").Value = 10 은 A1 에 10 을 쓴다.

왼쪽이면 쓰기, 오른쪽이면 읽기다. 같은 .Value 인데 위치로 방향이 갈린다.
Cells(2, 3).Value = "납품" 처럼 문자열도 된다. 따옴표로 감싸면 글자다.

= 오른쪽에 있으면 읽기 · 왼쪽이면 쓰기
셀 제어 시뮬레이터 · 코드로 시트 쓰기
가상 시트, Sheet1
ABCD
112매출
2
3
4
코드, 한 줄 적기
실행 결과

한 줄 적고 실행을 눌러 본다.

P.04엑셀 VBA · 04

범위를 한 번에 다룬다

Range 는 한 칸뿐 아니라 범위도 가리킨다. Range("A1:A3") 처럼 콜론으로 묶는다.

묶은 범위에는 통째로 같은 값을 쓸 수 있다.
Range("A1:C1").Value = 0 한 줄로 세 칸이 다 0 이 된다.
색을 칠하거나(.Interior.Color) 지우는(.ClearContents) 것도 범위째 한 번에 된다.

한 칸씩 도는 건 Cells(i, j)i, j 를 숫자로 바꿔 가며 반복할 때 한다.
이 숫자 주소가 반복문과 만나면 표 전체를 코드로 훑게 된다.

한 칸이 아니라 여러 칸을 묶어
Range("A1:C1").Value = 0
ABCD
1000
2
3
한 칸Range("A1")
범위Range("A1:C1")

콜론(:)으로 묶으면 여러 칸이 한 덩어리가 된다

P.05엑셀 VBA · 04

시트를 지정한다

그냥 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)
어느 칸 (C2)
·
.Value = 10
무엇을 쓸지

Worksheets("Sheet1").Cells(2,3).Value = 10

점(.)으로 이어 붙여 정확히 한 칸을 찍는다

3줄 요약

  1. 1셀을 코드로 읽고 쓰기
  2. 2Range와 Cells은 매크로 → 변수·셀 → 조건·반복 → 폼 → 자동화 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

Range와

셀을 코드로 읽고 쓰기

매크로

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

Sub

실행 단위가 되는 프로시저