[VBA 매크로] OFFSET 프로퍼티 소개(셀, 범위 이동)
엑셀, VBA, 파워쿼리/VBA 매크로

[VBA 매크로] OFFSET 프로퍼티 소개(셀, 범위 이동)

by Jongg 2024. 6. 25.
728x90

OFFSET 프로퍼티는 특정 셀이나 범위를 기준으로 일정한 행과 열만큼 떨어진 위치를 참조합니다. OFFSET은 엑셀 VBA에서 배열을 활용할 때도 많이 사용되고, 범위를 동적으로 설정할 때 RESIZE와 함께 사용되는 등 쓰임새가 다양합니다.  이번 글에서는 OFFSET의 기본 개념을 소개하고, 구체적인 활용 예시는 다른 글에서 알아보겠습니다.

 

#1. OFFSET의 기본 구문

 

<기본 구문>

셀/범위.Offset(RowOffset, ColumnOffset)

 

- 셀/범위: 기준이 되는 셀이나 범위.

- RowOffset: 기준 셀에서 이동할 행의 수(양수는 아래쪽, 음수는 위쪽). 생략 불가능

- ColumnOffset: 기준 셀에서 이동할 열의 수(양수는 오른쪽, 음수는 왼쪽). 생략 시 '0'(행 이동만)

 

▲ 직접 실행창(Visual Basic > 보기)에서 아래의 코드를 차례대로 입력후 엔터를 눌러보시면 기본구문에 대한 감을 익히실 수 있습니다.

?range("B2").offset(1).Address
?range("B2").offset(-1).Address
?range("B2").offset(0,1).Address
?range("B2").offset(0,-1).Address
?range("B2").offset(1,1).Address
?range("B2").offset(-1,-1).Address

 

728x90

 

#2. 범위를 기준으로 OFFSET 매서드를 사용하기

 

셀/범위.Offset(RowOffset, ColumnOffset)에서 셀을 기준으로 OFFSET을 사용할 때의 결과는 앞서 소개해드린 기본구문으로도 충분히 설명될 것입니다. 하지만 셀 대신 범위를 기준으로 OFFSET을 사용할 때는 헷갈릴 수 있을텐데요.

 

범위를 기준으로 OFFSET을 사용할 때는 범위가 시작되는 셀을 기준으로 범위가 이동합니다. 

 

▲ 직접 실행창에 range("A1:B2").Offset(2,2).Select를 입력 후 실행한 결과, 위의 사진처럼 "C2:D4" 범위가 선택됩니다. 즉, 기존 범위인 "A1:B2"의 시작 셀인 A1을 기준으로 범위가 아래로 2개 행, 오른쪽으로 2개 열 이동한 것입니다.

 

이번 글에서는 OFFSET의 기본적인 개념과 사용 시 결과에 대해 소개해 드렸는데요. 다른 글을 통해 상품 분류별 월별 판매액 합계 구하기, RESIZE와 함께 사용하여 동적으로 범위를 설정하기 등 실용적인 활용 예시를 소개해드리겠습니다. 

 

 

 

[VBA 매크로] Resize 프로퍼티로 범위 선택하기(Range.Resize)

VBA 매크로 프로퍼티 중 'Resize'로 데이터 영역의 일부를 선택하는 방법을 소개해 드리겠습니다. #1. Resize 프로퍼티 소개 Resize 프로퍼티는 지정된 범위의 크기를 조정합니다. 지정된 범위의 행(아

writingpjt.tistory.com

▲ (참고) RESIZE 프로퍼티 소개글 

 

728x90

댓글