HOWTO · VBA

VBA를 사용하여 Excel에서 열 번호를 문자로 변환하는 방법

주소 기반 방식과 산술 방식을 사용해 VBA에서 Excel 열 번호를 열 문자로 변환하는 방법을 알아봅니다.

이 페이지의 내용

VBA에서 열 번호를 Excel 열 문자로 바꾸려면 전체 열 주소가 유용할 때 Columns(columnNumber).Address를 사용하거나, Split으로 그 주소에서 문자를 추출하십시오. 워크시트 범위 조회 없이 라벨만 필요하면 아래에서 설명하는 산술 방식을 사용하십시오. Excel 열 번호는 1부터 시작합니다. 예를 들어 1 → A, 26 → Z, 27 → AA, 100 → CV입니다.

VBA를 사용하여 Excel에서 열 번호를 문자로 변환

Columns와 Address로 전체 열 주소 가져오기

열 번호를 Excel의 Columns 멤버에 전달하고 그 Address를 읽습니다. 예를 들어 Columns(100).Address는 CV만이 아니라 $CV:$CV와 같은 전체 참조를 반환합니다. 코드에 주소 자체가 필요할 때 이 형식을 사용하십시오.

Split으로 열 문자만 추출하기

라벨만 얻으려면 주소에서 열 문자를 상대 참조로 만들고 결과를 콜론으로 나눕니다: Split(Columns(100).Address(, False), ":")(0). 첫 번째 부분은 CV이고, 두 번째 부분은 콜론 뒤에서 이를 반복한 것입니다. Split은 VBA 함수이고, Columns와 Address는 Excel 개체 모델의 멤버입니다.

셀 주소에서 시작할 수도 있습니다. Cells(1, 100).Address는 $CV$1을 반환합니다. 이를 $로 나누고 요소 1을 가져오면 열 라벨이 됩니다: Split(Cells(1, 100).Address, "$")(1). Cells는 제공된 행과 열에 있는 셀을 선택하고, Address는 그 참조의 형식을 지정합니다.

산술로 변환하기

문자열이 필요하고 워크시트 범위 조회를 피하고 싶을 때 산술 변환이 유용합니다. 이 문자 체계는 0인 자릿수가 없는 26진법입니다. 26으로 나눈 나머지를 구하기 전에 1을 빼고, 그 나머지를 A부터 Z에 대응시킨 다음, 몫으로 계속 진행합니다. 이 조정이 Z에서 AA로의 전환을 가능하게 합니다. 예를 들어 구현은 입력 1, 26, 27, 100에 대해 각각 A, Z, AA, CV를 반환해야 합니다.

이 방식을 사용하는 산술 함수는 유효한 양의 열 번호를 가정하며, Excel의 워크시트 한계나 다른 입력을 검증하지 않습니다. Excel 참조가 필요할 때는 주소 기반 방식을, 문자만 필요할 때는 산술 방식을 선택하십시오.

Split() 함수 이해하기

Split(expression, delimiter)은 구분 기호가 나타나는 위치마다 문자열을 나누고 부분 문자열 배열을 반환합니다. Split(Columns(100).Address(, False), ":")(0)에서는 콜론이 CV:CV를 나누고 인덱스 0이 첫 번째 CV를 선택합니다. Split(Cells(1, 100).Address, "$")(1)에서는 CV를 둘러싼 달러 기호 때문에 인덱스 1이 라벨이 됩니다. 이러한 식에는 String()으로의 변환이 필요하지 않습니다.

결론

Excel 참조가 필요할 때는 Columns와 Address를 사용한 다음 Split을 사용해 그 열 라벨을 추출하십시오. 독립적인 문자열이 필요하면 산술로 워크시트 범위 조회 없이 같은 문자를 만들 수 있습니다. 산술 방식은 유효한 양의 입력을 기대하며 입력 검증을 수행하지 않습니다.