2019-02-18

VBA - RegExp 사용하기

VBA로 Regular Expression을 사용하여 문자열을 찾는 함수를 만들어 봅니다.

------------------------------------------------------------
Function myRegEx(testStr As String, pattern As String)
    Dim re As Object
    ''Tools/Add- Microsoft VBScript Regular Expression 5.5
    Set re = CreateObject("VBScript.RegExp")

    With re
       ''.Pattern = "^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}$"
       .Pattern = pattern
       .IgnoreCase = True
       .Global = False
    End With

    ' Test method returns TRUE if a match is found
    If re.test(testStr) Then
       Debug.Print testStr & " is a valid e-mail address"
    Else
       Debug.Print testStr & " is NOT a valid e-mail address"
    End If

    myRegEx = re.test(testStr)
End Function
------------------------------------------------------------

VBA Editor에서 도구/참조를 열어서
Microsoft VBScript Regular Expression 5.5를 추가해 주어야 합니다.














Regular Expression 문법은 아래와 같은 사이트를 참조합니다.
https://regexr.com/

아래와 같이 만든 함수 myRegEx를 테스트 할 수 있습니다.
Sub regExp_test()
        If myRegEx(빈도항목값.Value, "^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}$") Then
            Debug.Print "문자열이 EMail형식이 맞습니다.!"
        End If   
End Sub






No comments:

Post a Comment