Resize 속성은 특정 범위의 크기를 조정할 때 사용됩니다.
즉, 기준 셀을 유지하면서 행 또는 열의 개수를 동적으로 변경할 수 있습니다.
1. 기본 문법
Range("기준셀").Resize(행 개수, 열 개수)
|
- 행 개수: 변경할 행 개수 (생략하면 기존 행 개수 유지)
- 열 개수: 변경할 열 개수 (생략하면 기존 열 개수 유지)
2. 예제
📌 1개의 셀을 3x2 범위로 확장
Sub Resize_예제1()
Range("A1").Resize(3, 2).Select ' A1을 기준으로 3행 2열 선택
End Sub
|
📌 A1을 기준으로 3행 × 2열(A1:B3) 범위를 선택
📌 기존 범위에서 행 개수만 변경
Sub Resize_행만_변경()
Range("A1:A2").Resize(5).Select ' 행 개수를 5로 변경 (A1:A5)
End Sub
|
📌 A1:A2 → A1:A5로 확장 (열 개수는 그대로)
📌 기존 범위에서 열 개수만 변경
Sub Resize_열만_변경()
Range("A1:B1").Resize(, 4).Select ' 열 개수를 4로 변경 (A1:D1)
End Sub
|
📌 A1:B1 → A1:D1로 확장 (행 개수는 그대로)
📌 기존 범위에서 행과 열 개수 모두 변경
Sub Resize_행과열_변경()
Range("B2").Resize(4, 3).Select ' B2를 기준으로 4행 3열 선택 (B2:D5)
End Sub
|
📌 B2 → B2:D5로 확장
📌 동적으로 범위 확장
Sub 동적_Resize()
Dim lastRow As Long
lastRow = Range("A1").End(xlDown).Row ' A1에서 마지막 데이터 행 찾기
Range("A1").Resize(lastRow, 1).Select ' A1에서 마지막 행까지 확장
End Sub
|
📌 A1에서 데이터가 있는 마지막 행까지 범위를 자동 확장
📌 Resize를 활용한 데이터 입력
Sub Resize_데이터입력()
Range("B2").Resize(3, 2).Value = "Hello" ' B2:D4 범위에 "Hello" 입력
End Sub
|
📌 B2:D4에 "Hello" 입력
📌 Resize를 활용한 데이터 삭제
Sub Resize_데이터삭제()
Range("C3").Resize(5, 2).ClearContents ' C3:D7 데이터 삭제
End Sub
|
📌 C3:D7 범위의 데이터 삭제
📌 Resize를 활용한 서식 변경
Sub Resize_서식변경()
Range("A1").Resize(5, 3).Interior.Color = RGB(255, 255, 0) ' 노란색 배경 적용
End Sub
|
📌 A1:C5 범위의 배경색을 노란색으로 변경
3. Resize와 Offset 함께 사용
Resize와 Offset을 함께 사용하면 기준 범위를 이동하면서 크기를 조절할 수 있습니다.
📌 한 칸 아래로 이동 후 3x2 범위 선택
Sub Resize_Offset_활용()
Range("A1").Offset(1, 1).Resize(3, 2).Select ' A2를 기준으로 3x2 선택 (B2:C4)
End Sub
|
📌 A1에서 한 칸 아래, 한 칸 오른쪽으로 이동 후 3x2 크기 설정
📝 정리
기능
|
VBA 코드
|
1개의 셀을 특정 크기로 확장
|
Range("A1").Resize(3,2).Select
|
행 개수만 변경
|
Range("A1:A2").Resize(5).Select
|
열 개수만 변경
|
Range("A1:B1").Resize(,4).Select
|
행과 열 개수 모두 변경
|
Range("B2").Resize(4,3).Select
|
마지막 데이터 행까지 동적 확장
|
Range("A1").Resize(lastRow,1).Select
|
Resize를 활용한 데이터 입력
|
Range("B2").Resize(3,2).Value = "Hello"
|
Resize를 활용한 데이터 삭제
|
Range("C3").Resize(5,2).ClearContents
|
Resize를 활용한 서식 변경
|
Range("A1").Resize(5,3).Interior.Color = RGB(255,255,0)
|
Offset과 함께 사용
|
Range("A1").Offset(1,1).Resize(3,2).Select
|
🔥 Resize를 활용하면 동적인 범위 설정이 가능하여 VBA 자동화에 매우 유용합니다! 🚀