업무중에 휴대전화번호인지 여부를 확인해야 할때가 가끔있습니다.

그냥 DB에 넣고 쿼리로 확인하거나 코딩해서 확인하고는 했었는데


데이타 수가 많지 않을경우 그냥 엑셀에서 바로 정규식을 활용할 수 있어서 매우 편합니다.


1. 엑셀에 VBA 에디터 실행


   - Alt + F11 로 에디터 실행



2. 정규식 사용하기 위한 VBA 모듈 추가



정규식을 사용하기 위해 VBA 편집 에디터에서 [도구] > [참조] 메뉴를 선택하고

참조 팝업창이 출력되면 참조 목록에서 Microsoft VBScript Reqular Expressions 5.5 를 선택하고 [확인]을 선택합니다.


3. VBA 코드 입력


휴대폰 번호를 확인하는 정규식은 아래 표와 같습니다. (제가 여기저기서 짜집기 했습니다^^)

  휴대폰 번호 확인 정규식 :  "^(?:(010-?([0-9]{4}))|(01[1|6|7|8|9]-?([0-9]{3,4}))-?([0-9]{4})$"

  - 010 일때는 4자리 4자리 번호, 그외 01X 일경우 3/4 자리 4자리 숫자를 받도록 함 


휴대폰 번호 확인 샘플 코드

Public Function 휴대폰번호(ByVal PhoneNumber As String)
    Dim regex   As RegExp
    Set regex = New RegExp

    With regex
        .IgnoreCase = True
        .pattern = "^(?:(010-?([0-9]{4}))|(01[1|6|7|8|9]-?([0-9]{3,4})))-?([0-9]{4})$"
        .Global = True

        If .Test(PhoneNumber) Then
            mStr = .Execute(PhoneNumber)(0)
            휴대폰번호 = mStr     '// 정상번호 일때
        Else
            휴대폰번호 = "N/A"   '// 잘못된 번호 일때
        End If

    End With
End Function


4. VBA 코드 활용




참 쉽죠?


그럼 오늘은 여기까지...


To be continued -夜昧-