Computer >> 컴퓨터 >  >> 소프트웨어 >> Office

엑셀 VBA로 열 번호를 문자로 변환하는 3가지 방법

VBA 매크로는 엑셀에서 어떤 작업이든 가장 효과적이고 빠르며 안전하게 수행할 수 있는 방법입니다. 이 글에서는 VBA를 활용해 엑셀에서 열 번호를 문자로 변환하는 방법을 단계별로 소개합니다.

연습용 워크북 다운로드

아래 링크에서 무료 연습용 엑셀 워크북을 다운로드하여 직접 따라 해볼 수 있습니다.

VBA로 열 번호를 문자로 변환하는 3가지 방법

이번 섹션에서는 특정 열 번호를 문자로 변환하는 방법, 사용자가 입력한 열 번호를 문자로 변환하는 방법, 그리고 UDF(사용자 정의 함수)를 만들어 열 번호를 문자로 변환하는 방법까지 총 세 가지 방식을 살펴봅니다.

1. 특정 열 번호를 문자로 변환하는 VBA 매크로

먼저 코드 안에 직접 지정된 특정 열 번호를 문자로 변환하는 기본적인 방법부터 알아보겠습니다.

순서:

  • 키보드에서 Alt + F11을 누르거나 리본 메뉴의 개발 도구 → Visual Basic으로 이동하여 VBA 편집기(Visual Basic Editor)를 엽니다.

엑셀 VBA로 열 번호를 문자로 변환하는 3가지 방법

  • 열리는 코드 창의 메뉴 모음에서 삽입 → 모듈(Module)을 클릭합니다.

엑셀 VBA로 열 번호를 문자로 변환하는 3가지 방법

  • 아래 코드를 복사해서 코드 창에 붙여넣습니다.
Sub ColNumToLetter()
Dim ColNumber As Long
Dim ColLetter As String
'Input Column Number
ColNumber = 200
'Convert To Column Letter
ColLetter = Split(Cells(1, ColNumber).Address, "$")(1)
'Display Result
MsgBox "Column " & ColNumber & " = Column " & ColLetter
End Sub

이제 코드 실행 준비가 완료되었습니다.

엑셀 VBA로 열 번호를 문자로 변환하는 3가지 방법

위 코드는 200번째 열에 해당하는 문자 주소를 구해주는 코드입니다.

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

엑셀 VBA로 열 번호를 문자로 변환하는 3가지 방법

그러면 Microsoft Excel 팝업 메시지 상자에 코드 안에서 지정한 열 번호(예: 200)에 해당하는 문자 주소(GR)가 표시됩니다.

엑셀 VBA로 열 번호를 문자로 변환하는 3가지 방법

함께 읽으면 좋은 글: 엑셀에서 열 번호 기준으로 Range 사용하기(VBA, 4가지 방법)

유사한 주제의 글

  • [해결] 엑셀에서 열 머리글이 숫자로 표시될 때(2가지 해결책)
  • 엑셀에서 열 문자를 번호로 변환하기(4가지 방법)

2. UDF(사용자 정의 함수)를 만들어 열 번호를 문자로 변환하기

다음은 VBA로 UDF(사용자 정의 함수)를 만들어 워크시트에서 자유롭게 호출하며 열 번호를 문자로 변환하는 방법입니다.

순서:

  • 앞서와 동일한 방식으로 개발 도구 탭에서 VBA 편집기를 열고 코드 창에 모듈을 삽입합니다.
  • 코드 창에 아래 코드를 복사해서 붙여넣습니다.
Public Function NumToLtr(ColNum)
NumToLtr = Split(Cells(1, ColNum).Address, "$")(1)
End Function

엑셀 VBA로 열 번호를 문자로 변환하는 3가지 방법

이 코드는 실행 버튼으로 돌리는 Sub 프로시저가 아니라, 사용자 정의 함수(UDF)를 만드는 코드입니다. 따라서 코드 작성 후에는 실행 버튼 대신 저장(Save)을 눌러야 합니다.

  • 이제 원하는 워크시트로 돌아가서, 방금 만든 함수(NumToLtr)를 입력하고 괄호 안에 문자로 변환하고 싶은 셀 참조를 넣어줍니다. (예시에서는 B5 셀을 인수로 전달했습니다.)

최종 수식은 다음과 같습니다.

=NumToLtr(B5)

  • Enter 키를 누릅니다.

엑셀 VBA로 열 번호를 문자로 변환하는 3가지 방법

데이터 집합에서 열 번호(1)에 해당하는 문자 주소(A)가 계산되어 표시됩니다.

  • 이제 채우기 핸들(Fill Handle)을 아래로 끌어 나머지 셀에도 UDF를 적용하면 각 열 번호가 한꺼번에 문자로 변환됩니다.

엑셀 VBA로 열 번호를 문자로 변환하는 3가지 방법

GoTo 문 활용하기

위 과정은 GoTo 문을 사용해서도 구현할 수 있습니다. 이 방식은 오류 발생 시 에러 메시지를 표시하도록 처리하는 장점이 있습니다.

  • GoTo 문으로 열 번호를 문자로 변환하는 VBA 코드는 다음과 같습니다.
Public Function Num_Letter(ByVal iColNum As Integer) As String
Dim SLetter As String
   On Error GoTo iError
   Num_Letter = Left(Cells(1, iColNum).Address(False, False), _
                  Len(Cells(1, iColNum).Address(False, False)) - 1)
   Exit Function
iError:
   Call MsgBox(Err.Number & " - " & Err.Description)
End Function

엑셀 VBA로 열 번호를 문자로 변환하는 3가지 방법

  • 앞서와 마찬가지로 데이터 집합에서 UDF를 호출하고, 셀 참조를 인수로 전달한 뒤 Enter 키를 누르고 행을 아래로 끌어 적용하면 됩니다.

엑셀 VBA로 열 번호를 문자로 변환하는 3가지 방법

Do-While 루프 활용하기

Do-While 루프 역시 열 번호를 문자로 변환할 수 있는 또 하나의 방법입니다. 이 방식은 26진수 개념을 이용해 알파벳 조합을 직접 계산합니다.

  • Do-While 루프로 열 번호를 문자로 변환하는 VBA 코드는 다음과 같습니다.
Function NumberToLetter(iCol As Long) As String
   Dim a As Long
   Dim b As Long
   a = iCol
   NumberToLetter = ""
   Do While iCol > 0
      a = Int((iCol - 1) / 26)
      b = (iCol - 1) Mod 26
      NumberToLetter = Chr(b + 65) & NumberToLetter
      iCol = a
   Loop
End Function

엑셀 VBA로 열 번호를 문자로 변환하는 3가지 방법

  • 같은 방식으로 데이터 집합에서 UDF를 호출하고, 셀 참조를 인수로 전달한 후 Enter 키를 누르고 행을 끌어 적용하면 됩니다.

엑셀 VBA로 열 번호를 문자로 변환하는 3가지 방법

함께 읽으면 좋은 글: 엑셀 VBA: 행·열 번호로 범위 설정하기(3가지 예제)

3. 사용자 입력값으로 열 번호를 문자로 변환하기

마지막으로, 실행 중 사용자에게 직접 입력받은 열 번호를 문자로 변환하는 방법입니다. 매번 코드를 수정하지 않아도 되어 실무에서 유용합니다.

순서:

  • 앞서와 동일하게 개발 도구 탭에서 VBA 편집기를 열고 코드 창에 모듈을 삽입합니다.
  • 코드 창에 아래 코드를 복사해서 붙여넣습니다.
Sub GetNumberFromUser()
    Dim ColNumber As Long
    Dim ColLetter As String
    'User Input: Column Number
    ColNumber = InputBox("Please Enter a Column Number")
    'Convert the user-entered Column Number To Column Letter
    ColLetter = Split(Cells(1, ColNumber).Address, "$")(1)
    'Display the Result
    MsgBox "Column Number: " & ColNumber & _
                        " = Column Letter: " & ColLetter
End Sub

이제 코드 실행 준비가 완료되었습니다.

엑셀 VBA로 열 번호를 문자로 변환하는 3가지 방법

  • 매크로를 실행합니다.
  • Microsoft Excel 팝업 상자가 나타나며 열 번호를 입력하라고 요청합니다. 변환하고 싶은 열 번호를 상자에 입력한 뒤 확인(OK)을 누릅니다.

엑셀 VBA로 열 번호를 문자로 변환하는 3가지 방법

입력한 열 번호(예: 200)가 해당하는 문자 주소(GR)로 변환되어 결과가 표시됩니다.

엑셀 VBA로 열 번호를 문자로 변환하는 3가지 방법

함께 읽으면 좋은 글: 엑셀에서 열 번호 기준으로 Range 사용하기(VBA, 4가지 방법)

마치며

이번 글에서는 VBA를 활용해 엑셀에서 열 번호를 문자로 변환하는 세 가지 방법을 살펴보았습니다. 고정된 값 변환부터 사용자 정의 함수, 사용자 입력 처리까지 상황에 맞는 방법을 골라 활용해 보시기 바랍니다. 이 글이 도움이 되었기를 바라며, 주제와 관련해 궁금한 점이 있다면 언제든지 질문해 주세요.

관련 글

  • 엑셀에서 열 이름을 ABC에서 1 2 3으로 변경하는 방법
  • 엑셀에서 열 문자를 번호로 변환하기(4가지 방법)
  • 엑셀에서 행·열 번호로 셀 참조하기(4가지 방법)
  • 엑셀 VBA: 여러 열 선택하기(3가지 방법)
  • 엑셀에서 일치하는 값의 열 번호 반환하기(5가지 유용한 방법)