티스토리 뷰


이번 글에서는 Cell에 있는 텍스트의 값을 대문자화 혹은 소문자화하는 방법에 대해서 알아보도록 하겠습니다.

엑셀 VBA는 기본적으로 이러한 기능을 사용할 수 있도록 함수를 제공하고 있습니다. 바로 UCase 함수와 LCase 함수인데요. 


이 함수에 대한 내용을 MSDN을 통해서 살펴보도록 하겠습니다. 


함수에 대한 내용중 별다른것은 없습니다. 대문자를 만들때는 UCase 함수를 쓰고, 소문자를 만들때는 LCase 함수를 쓰는구나 라고 외우시면 됩니다. 

UCase, LCase 함수 모두 Char 값을 받으면 Char로 리턴을 하고, String 값을 받으면 String을 리턴을 합니다. 



자 그럼 위의 함수를 이용하여 예제를 한번 만들어 볼까요. 

셀에 있는 데이터를 가지고 와서 B2의 값은 대문자로, B3의 값은 소문자로 만들어서 각각 B2, B3에 넣었습니다. 


LCase를 실행한다고 해서 관련 셀의 값이 변경되는 것이 아니라 셀의 값을 가져와서 소문자로 만들어서 이를 리턴하는 것이기 때문에 관련 셀에 추가적으로 대입해줘야 합니다. 


즉 UCase(Cells(2, 2))게만 실행을 하면 Cells(2,2)에 있는 문자열을 대문자로 만든것이지, Cells(2,2)의 값이 대문자가 되지 않습니다.

따라서 Cells(2,2) = UCase(Cells(2, 2))와 같이 대문자로 만든 값을 Cells(2,2)에 넣어줘야 합니다.


이 부분 많이 실수 하시는 부분입니다. 실행했는데 결과가 나오지 않는다구요.

대부분의 문자열 함수는 문자열을 가지고와서, 문자열 처리를 합니다만 관련 셀의 값에 직접적으로 영향을 미치지 않기 때문에 문자열 함수로 처리한 뒤 관련 셀에 값을 넣어줘야 합니다. 


Sub DoUpperAndLowerCase()


    ' This is a Gus Real World를 대문자화

    Cells(2, 2) = UCase(Cells(2, 2))

    

    ' This is a Gus Real World를 소문자화

    Cells(3, 2) = LCase(Cells(3, 2))

    

End Sub


그럼 결과를 보도록 하겠습니다. 

B2의 값은 대문자가 되었고, B3의 값은 소문자로 변경되었습니다. 



문자열을 처리할 때는 문자열 함수를 쓰고나서 대입을 해야한다만 이해하시면 될 것같습니다. 

다른 문자열 함수를 쓸때도 마찬가지 입니다.


그럼 이만 줄이겠습니다.


이 글이 도움이 되셨으면, 아래의 하트를 눌러주세요.

댓글