[Excel][VBA] Range개체 참조하기
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 + 영역선택)