본문 바로가기

컴퓨터

엑셀에서 정규표현식 사용하기

반응형

요즘은 notepad++에서도 정규표현식이 사용이 가능한데

위대한 엑셀에서 정규표현식을 사용할 수 없다

명색이 다양한 데이터를 처리해야 하는데


이곳 저곳을 기웃거리다 보니 정규표현식을 VBA로 사용이 가능하단다

먼저 Alt + F11 을 눌러서 VBA 환경을 열고 도구->참조 에서 Microsoft VBScript Regular Expression 5.5 를 체크한다



모듈을 하나 만들어서


Function regExpMatch(Value As String, Pattern As String, Optional IgnoreCase As Boolean = False)

    Dim r As New VBScript_RegExp_55.RegExp

    r.Pattern = Pattern

    r.IgnoreCase = IgnoreCase

    If r.Test(Value) Then

        regExpMatch = True

    Else

        regExpMatch = False

    End If

End Function



Function regExpReplace(Value As String, Pattern As String, ReplaceWith As String, Optional IgnoreCase As Boolean = False)

    Dim r As New VBScript_RegExp_55.RegExp

    r.Pattern = Pattern

    r.IgnoreCase = IgnoreCase

    r.Global = True

    regExpReplace = r.Replace(Value, ReplaceWith)

End Function


두개의 함수를 정의 한다


정의한 후에 엑셀에서 일반 함수 사용하듯이 사용하면 된다

하단의 예제는

글에서 웹링크를 제거하는 예제이다

=regExpReplace(A1,A2,"")

이렇게 해주면 웹 링크를 제거한다


불편했던 문자열 처리를 완벽하게 해주는 정규 표현식

반응형