Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀(Excel) - VBA 숫자를 문자로 변환하는 방법

엑셀(Excel)/VBA

엑셀(Excel) - VBA 숫자를 문자로 변환하는 방법

 

환경 : Microsoft Excel 2010

 

VBA에서 숫자를 문자로 바꿔야 하는 경우가 종종 있습니다. 숫자를 문자로 바꿀 수 있는 함수에는 두 가지가 있는데요. Str Format 가 그것입니다. 함수 사용에 있어서 주의할 것은 숫자로 변환한 후 문자열 합치기를 하게 되는데, 그때 공백을 꼭 체크하셔야 합니다.

 

간단하지만 항상 찾게 되는 문자 변환 함수입니다. 문자로 변환하고 싶다면 Str Format 를 사용하시면 됩니다. 보통 문자로 변환하는 이유가 숫자를 문자와 합쳐서 문자열을 만들고 싶을 때 입니다. 그런데 하나 체크해야 될 것이 Str() 함수는 변환 후 앞자리에 공백이 있을 수 있으므로 항상 Ltrim 으로 제거해 주는 것이 좋습니다.

 

Trim 은 공백 제거 함수 입니다. Ltrim 은 왼쪽 Left 의 약자를 앞에 붙인 것입니다. 그럼 Rtrim 이 있겠죠. 오른쪽 공백을 없애는 함수 입니다. 첫 번째 소스는 Str 함수를 이용해서 숫자를 문자로 변환한 것이며 그대로 로그에 찍으면 앞자리에 공백이 들어가 있는 것을 확인할 수 있습니다. 두 번째 소스는 Ltrim 을 이용해서 공백을 제거한 후 Debug.Print 를 이용해 로그에 찍어 본 것입니다. 세 번째는 Format 을 이용해서 변환한 것입니다.

 

Sub 시트추가_Click()

       

    Dim 변환문자 As String

   

    ' 숫자를 문자열로 변환

    변환문자 = Str(222)

    변환문자 = "[" & 변환문자 & "]"

    Debug.Print 변환문자

   

    '변환하게 되면 공백이 생긴다. 공백제거를 위해 LTrim 함수사용

    변환문자 = Str(222)

    변환문자 = LTrim(변환문자)

    변환문자 = "[" & 변환문자 & "]"

    Debug.Print 변환문자

 

    ' 숫자를 문자열로 변환

    변환문자 = Format(222)

    변환문자 = "[" & 변환문자 & "]"

    Debug.Print 변환문자

   

End Sub

 

위의 소스를 실행한 결과 입니다. 문자열 합치기를 했을 때 Ltrim 을 해주지 않으면 공백이 남는다는 것을 알수 있습니다.

 

엑셀(Excel) - VBA 숫자를 문자로 변환하는 방법


Posted by 녹두장군

댓글을 달아 주세요

  1. 엑린이 2019.02.04 17:50  댓글주소  수정/삭제  댓글쓰기

    vba를 통해 숫자로 바꾸는 일을 진짜 많이 고민했었는데
    어떤 유투브 채널을 통해 힌트를 얻은걸 공유해드립니다.
    (고민을 많이 했고 생각보다 작업시간이 길더라구요)

    Range("a1:a10").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited