이 글에서는 엑셀 VBA를 사용해 열 번호를 기준으로 Range 개체를 활용하여 다양한 작업을 수행하는 방법을 알아봅니다.
연습용 워크북 다운로드
무료 연습용 엑셀 워크북을 여기서 다운로드할 수 있습니다.
VBA Range 개체란?
VBA의 Range 개체는 엑셀 워크시트 내에서 단일 셀, 여러 셀, 행 또는 열을 포함할 수 있습니다.
Range 개체의 계층 구조는 다음과 같습니다.
Application > Workbook > Worksheet > Range
VBA에서 Range 개체는 아래와 같이 선언합니다.

엑셀에서 열 번호로 Range를 활용하는 4가지 VBA 방법
이 섹션에서는 VBA 매크로를 사용해 열 번호를 기준으로 범위를 선택하는 방법, 열 번호를 기준으로 범위에 값 설정 방법, 그리고 범위의 마지막 열 번호 반환 방법을 다룹니다.
1. 열 번호를 기준으로 범위 선택하기
아래와 같은 복잡한 데이터 세트에서 열 번호를 기준으로 범위를 선택하고 싶다면, 이 글을 끝까지 읽어 해결책을 확인해 보세요.

위 데이터 세트에서 열 번호를 이용해 범위를 선택하는 단계는 다음과 같습니다.
단계:
- 키보드에서 Alt + F11을 누르거나 개발 도구 -> Visual Basic 탭으로 이동해 VBA 편집기(Visual Basic Editor)를 엽니다.

- 코드 창이 나타나면 메뉴 모음에서 삽입 -> 모듈을 클릭합니다.

- 아래 코드를 복사해 코드 창에 붙여넣습니다.
Sub SetRange()
Range(Cells(2, 3), Cells(10, 5)).Select
End Sub
코드 설명:
- Cells(2,3) = 2번째 행, 3번째 열 (C2 셀)
- Cells(10,5) = 10번째 행, 5번째 열 (E10 셀)
이제 코드를 실행할 준비가 되었습니다.

- 키보드에서 F5를 누르거나 메뉴 모음에서 실행 -> Sub/UserForm 실행을 선택합니다. 하위 메뉴 모음의 작은 재생 아이콘을 클릭해 매크로를 실행할 수도 있습니다.

입력한 열 번호를 기준으로 C2부터 E10까지의 셀 범위가 선택됩니다(아래 그림 참고).

더 읽기: 엑셀 VBA에서 변수 행 번호로 Range 사용하기(예제 4가지)
2. 열 번호를 기준으로 범위에 값 설정하기
앞선 섹션에서 열 번호를 기준으로 범위를 선택하는 방법을 배웠습니다. 이번 섹션에서는 열 번호를 기준으로 범위에 값을 설정하는 방법을 알아보겠습니다.
단계:
- 앞과 동일하게 개발 도구 탭에서 VBA 편집기를 열고 코드 창에 모듈을 삽입합니다.
- 코드 창에 아래 코드를 복사해 붙여넣습니다.
Sub SetValue()
Range(Cells(2, 2), Cells(8, 4)).Value2 = "Hello!"
End Sub
코드 설명:
- Cells(2,2) = 2번째 행, 2번째 열 (B2 셀)
- Cells(8,4) = 8번째 행, 4번째 열 (D8 셀)
이제 코드를 실행할 준비가 되었습니다.

- 매크로를 실행하면 B2부터 D8까지 모든 셀에 "Hello!"라는 값이 입력됩니다.

더 읽기: 엑셀 VBA: 행·열 번호로 범위 설정하기(예제 3가지)
관련 자료
- 엑셀 VBA: 셀 주소에서 행·열 번호 추출하기(방법 4가지)
- 엑셀에서 행·열 번호로 셀 참조하기(방법 4가지)
- 엑셀 VBA: 범위 내 각 셀 순회하기(방법 3가지)
- 엑셀에서 열 번호를 문자로 변환하는 방법(3가지)
- 엑셀 VBA로 범위 설정하기(예제 7가지)
3. 다른 워크시트에서 열 번호를 기준으로 범위 선택하기
여기서는 엑셀에서 다른 워크시트의 열 번호를 기준으로 범위를 선택하는 방법을 배웁니다.
단계:
- 앞과 동일하게 개발 도구 탭에서 VBA 편집기를 열고 코드 창에 모듈을 삽입합니다.
- 코드 창에 아래 코드를 복사해 붙여넣습니다.
Sub FixedRange()
Dim iRng As Range
Dim iSheet As Worksheet
Set iSheet = Worksheets("Range") '워크시트 이름 지정"
With iSheet
.Cells(1, 7).Select '워크시트의 G7 셀 선택
Set iRng = .Range(.Cells(3, 3), .Cells(7, 6))
End With
iRng.Select '워크시트의 C3:F7 범위 선택
End Sub
코드 설명:
- Cells(3,3) = 3번째 행, 3번째 열 (C3 셀)
- Cells(7,6) = 7번째 행, 6번째 열 (F7 셀)
이제 코드를 실행할 준비가 되었습니다.

- 코드를 실행하면 "Range"라는 이름의 워크시트에서 C3부터 F7까지의 모든 셀이 지정된 열 번호를 기준으로 선택됩니다(아래 그림 참고).

더 읽기: 엑셀 VBA로 열 번호를 문자로 변환하기(방법 3가지)
4. 범위에서 마지막 열 번호 반환하기
이 섹션에서는 엑셀에서 활성 범위의 마지막 열 번호를 구하는 VBA 코드를 살펴봅니다.
A1부터 D10까지 데이터가 있는 다음 데이터 세트를 가정해 보겠습니다. 우리는 이 범위에서 마지막 열 번호를 추출해 Return 시트의 F5 셀에 표시할 것입니다.
단계:
- 앞과 동일하게 개발 도구 탭에서 VBA 편집기를 열고 코드 창에 모듈을 삽입합니다.
- 코드 창에 아래 코드를 복사해 붙여넣습니다.
Sub ReturnLastColumnInRange()
'변수 선언
Dim iSheet As Worksheet
Dim iRng As Range
Set iWS = Worksheets("Return") '워크시트 지정
Set iRng = iWS.Range("A1:D10") '범위 설정
'마지막 열 번호를 셀에 반환
iWS.Range("F5") = iRng.Column + iRng.Columns.Count - 1
End Sub
이제 코드를 실행할 준비가 되었습니다.

- 매크로를 실행하면 F5 셀에 마지막 열 번호인 4가 표시됩니다.

더 읽기: 엑셀에서 일치 항목의 열 번호 반환하기(유용한 방법 5가지)
VBA Range 설정의 장점
- 구현이 매우 간단합니다.
- Range 개체의 인수는 고정되어 있지 않으므로, 필요에 따라 인수 값을 자유롭게 수정할 수 있습니다.
- 인수로 두 개 이상의 값을 전달할 수 있습니다.
기억해야 할 사항
- VBA에서는 CELLS 속성을 사용해서도 Range를 설정할 수 있습니다.
- 개체 변수는 반드시 SET 키워드를 사용해 개체의 참조로 설정해야 합니다.
결론
이 글에서는 엑셀 VBA를 사용해 열 번호를 기준으로 Range를 활용하여 다양한 작업을 수행하는 방법을 소개했습니다. 이 글이 여러분에게 큰 도움이 되기를 바랍니다. 주제와 관련해 궁금한 점이 있다면 언제든지 질문해 주세요.
관련 글
- 엑셀 VBA에서 셀 값 기준으로 범위 선택하기(7가지 방법)
- 엑셀 VBA로 다른 시트에 범위 복사하기(가장 쉬운 방법 8가지)
- 엑셀 VBA의 첨자 범위 초과 오류 해결하기(솔루션 5가지)
- [해결!] 엑셀 열 머리글이 문자 대신 숫자로 표시될 때
- 엑셀에서 열 문자를 번호 차트로 변환하는 방법(4가지)