본문 바로가기

단축키/엑셀

db컬럼명을 VO명칭으로 바꾸는 vba

반응형

db컬럼을 VO로 변경할 경우가 발생한다. VO 생성하는 플러그인을 사용할 수도 있지만 그렇지 않은 경우에는 써먹어도 나쁘지 않다. 그렇다. 플러그인이 없다. 귀찮기 때문에 이걸 만들어두고 사용하려고 만들었다. VBA언어는 잘 모르지만 프로그래밍이 거기에서 거기니까 비슷할 것이라 생각하고 해 보았다. 생각보다 간단하다. 

 

일단 요구사항을 확인해야겠다. 내가 만들고자 한 내용을 확인한다.

 - 첫 단어는 소문자로 시작 "_"를 만나면 그 뒤에 오는 첫글자는 대문자 그다음에는 다시 소문자로 한다.

이처럼 아주 간단한 기능이다. 

 

엑셀 빈 페이지를 연 후 ALT + F11을 누른다. 그러면 VBA화면이 나타나는데, 엑셀선택 오른쪽 마우스를 누른 후 모듈을 추가한다. 모듈에 이제 구문을 작성하고 저장하면 엑셀 함수처럼 사용할 수 있다.

 

구문은 아래와 같다.

Function Ret(pInRange Range) As String
'yoocodec
Dim yValue As String '입력값 저장
Dim yChar As String '한글자씩 저장
Dim yOut As String '출력값
Dim ySw As String '대소문자구분 Switch
yValue = pInRange.Value
ySw = False '소문자 = false 대문자 = true
For i = 1 To VBA.Len(yValue) '입력값의 문자 길이만큼 반복실행
    yChar = VBA.Mid(yValue, i, 1) '한글자 저장
    
    If yChar = "_" Then '글자가 "_"이면 다음글자를 대문자로 하기 위함
        ySw = True
    Else
        If ySw = False Then '소문자이면 실행
            yOut = yOut & VBA.LCase(yChar)
        Else   '대문자이면 실행
            yOut = yOut & VBA.UCase(yChar)
            ySw = False '대문자로 저장 후 다시 소문자로 변경.
        End If
    End If
Next
Ret =yOut '함수에 값 할당.
End Function

이렇게 저장을 하고 엑셀에 입력하면 값이 나온다.

사용법은 아래와 같다.

1.db컬럼명을 입력한다.

db컬럼명 입력

2.B1셀에 =Ret(A1)을 입력하고 엔터를 한다.

=Ret(A1)

3. 결과를 확인할 수 있다.

결과확인

이렇게 간단히 만들어 보았다. 잘 사용하면 좋은 기능들을 사용 가능할 것 같다. 이걸 다음엔 JAVA로 만들어도 되겠