티스토리 뷰

VBA

[Excel][VBA] Range개체 참조하기

어린왕자1234 2021. 11. 20. 22:14

1. Range속성을 이용하여 범위 참조하기(WorkSheet객체.Range속성)

Range("A1")  : 단일셀 

Range("A1:E10") = Range("A1", "E10")   :영역 

Range("이름") : 이름정의 이용

Range("C1:C10" "A6:E6") : 논리연산 이용

Range("A1 , A3 , A7 , B5") : 비연속셀 참조

 

2. Cells속성을 이용하여 범위 참조하기(WorkSheet객체.Cells속성)

Cells(rowIndex, columnIndex

Cells(Index)    : 가로방향의 인덱스   => Cells(16385) = [A2]

Cells             : 전체 셀

 

3. 상대 참조 개념

Range객체.Range속성   

Range객체.Cells속성     

ActiveCell.Range("A1") = ActiveCell.Cells(1,1) : 활성셀 자체를 참조

ActiveCell.Range("B2") = ActiveCell.Cells(2,2) : 활성셀이 [A2]이면 [B3]을 참조

Range("A1:D10").Cells(5)  : [A2]

Range("A1:D10").Cells(41)  : [A11]   <= 범위를 벗어나도 계산 가능

 

4. Offset속성을 이용해서 범위 참조하기

Range객체.Offset(rowOffset, columnOffset)

객체의 왼쪽 위 모서리 셀을 기준으로 상대적 위치를 지정

ActiveCell.Offset(1,0).Range("B2") = 20 

[A1]이 활성셀이다면  Offset(1,0)은 [A2]이고 Rang("B2")는 2행2열을 참조하므로 [B3]

 

5. [셀주소] 형식 지원

    Range("A1")       = [A1]

    Range("A1:E10")  = [A1:E10]

 

■ 워크시트의 범위를 다룰 때 알아야 할 사항

- 범위에 작업을 할 때, 실제로 범위를 선택할 필요가 없다.

- 범위를 선택하려면, 반드시 범위가 있는 워크시트가 활성화되어 있어야한다.(Activate메소드 사용)

- 범위를 참조할 때, 이름 정의된 범위를 사용하는 것이 좋다.

- 매크로 기록기로 범위를 선택하는 VBA 코드를 작성하려면 상대 참조 방식으로 매크로를 기록한다.

- 현재 선택된 범위에 있는 개별셀에 특정작업을 수행하는 매크로를 실행할 때, 전체 열이나 행이 선택되어 있을 수
  있다. 

따라서 선택된 범위에서 빈셀을 제외하고 채워진 셀에만 작업을 수행하는 매크로를 작성해야 한다.- 다중 영역으로 구성된 범위가 선택될 수도 있다.(Ctrl + 영역선택)

 

'VBA' 카테고리의 다른 글

[Excel][VBA] 개체에 대한 개념과 배우는 방법  (0) 2021.11.21
[Excel][VBA] 병합된 셀 처리  (0) 2021.11.20
[Excel][VBA] VBA 기초 다지기  (0) 2021.11.20
[Excel][VBA] 오류 처리 방법  (0) 2021.11.20
[Excel][VBA] 이름 정의  (0) 2021.11.20